{
  "schema_version": 3,
  "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
  "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
  "title": "3/8/26",
  "standard_id": "OTR-FULL-IMMERSIVE-STORY-STANDARD-V3",
  "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
  "publication_status": "READY_FOR_VALIDATION",
  "publication_phase": "LOCKED_CANONICAL",
  "supersedes": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
  "supersedes_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
  "market_pulse_cutoff_at_sgt": "2026-08-03T09:54:00+08:00",
  "story_written_at_sgt": "2026-08-03T15:45:45+08:00",
  "current_event_window": {
    "start_at_sgt": "2026-08-02T00:00:00+08:00",
    "end_at_sgt": "2026-08-03T09:54:00+08:00"
  },
  "confidence_boundary": "This edition separates reported facts, possible explanations and final results. Repeating one publisher's headline does not create a second independent source.",
  "historical_add_on": {
    "contract_id": "OTR-FULL-IMMERSIVE-HISTORICAL-ADD-ON-V1",
    "label": "Content-specific history for every section",
    "logic_version": 2,
    "content_comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
    "compared_fields": [
      "question",
      "headline",
      "narrative",
      "beats",
      "source_ids",
      "market_connection",
      "watch_conditions",
      "invalidation"
    ],
    "admin_history_relevance_audit_required": true,
    "required_on_every_tab": true,
    "placement": "VISIBLE_BELOW_ACTIVE_TAB",
    "use_state": "CONTEXT_ONLY",
    "comparison_scope": "SAME_CANONICAL_TAB_ONLY",
    "required_tab_count": 12,
    "matched_prior_tab_count": 12,
    "missing_prior_tab_count": 0,
    "source_order": [
      "OTR_PUBLISHED_HISTORY_SAME_TAB"
    ],
    "comparison_rule": "Every section compares only with the nearest earlier saved record of the same section. The comparison covers its question, headline, full explanation, main points, sources, wider meaning, watch list and condition that would change the view. Another section or a similar theme can never fill a gap.",
    "boundary": "These comparisons show how saved section content changed. They cannot prove a current fact, claim the same cause, replace a missing source, settle a prediction or change a search rule.",
    "tab_content_comparison_audits": {
      "Today": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
        "current_content_sha256": "1fd76751189645b92b324f7374f204d73f94169aecee0beba8b88872b47dd908",
        "prior_content_sha256": "10c07324fe71267ca583cef2f705036db78d6312a2c9d198a756e656315f217b",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Today",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "085d70f9a4276131896b1acb2c8e52e145f77490f911a99fc936841c55cd689f",
        "comparison_receipt_sha256": "d93d32dfeca134619483d37d650311b5d503df036659ca670eeea4ed00c2435c"
      },
      "Everything": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
        "current_content_sha256": "b4c4470bba0df4f27a386a4bcf9329bdd5bd82861ab83e0e421c7ff679dde0a0",
        "prior_content_sha256": "a1a4fa573015c4eaf7f4ca1a638e672449e4f733261ed9b5249ecaa809562e6e",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Everything",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 13,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "5c881cf105eaeb7a196e9ff199fe8a136ee9d86e89465cefafeaadf32a379efc",
        "comparison_receipt_sha256": "61ada41a9546788812442d1e709733dedcc8a91cfd09ccee2df07127e1595775"
      },
      "Worry": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
        "current_content_sha256": "fdc7bcf214358daa43a6640a9e03c33ed847a5aaf206335823ba7b035390826c",
        "prior_content_sha256": "ac6a59ebaaceb3383028971cff8346bd7b95a6a3d6fbf0c11445078771fa360a",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Worry",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "d830ca8f090ee39c126a0d3d525eecee8bfbf16d3a285757c91939df50fe9527",
        "comparison_receipt_sha256": "3545db42283cf982df1ddf1d991e8a72787503107edee8ff16d1dba8d64533d1"
      },
      "Big 3": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
        "current_content_sha256": "e082837fe3c677c3c23e3a07b652dbe833f984abbdc424324d7a4cf24444e990",
        "prior_content_sha256": "e60d6f16f07041ce058323e8ef85002d9dececb90a4c7ae1ff161ba0328c4271",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Big 3",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "133dccde9b83016d5c484981a5e085a2d183bc4e15e41df38de079070389d54c",
        "comparison_receipt_sha256": "b5146e9eda159fda09e1d89a372ccb111beb46f150c447a773cec588ec74561c"
      },
      "Predictions": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
        "current_content_sha256": "9eb86eb1ab1c55610c44bc66834f4472fbbcd690c1e939b30d22054bbfdc1ce8",
        "prior_content_sha256": "30f7dbc768ae886222f1d401bd1fef06b4c9eb526911019107121a1fc20cd1e6",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Predictions",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 21,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "73ddb76211dae45f28bcaba6a1257e93501ac924824824d63b28813b5b7c5a5b",
        "comparison_receipt_sha256": "81f6db682098b376cb64bda50d31edabeb6a51605442fd9dda54f8ff408baa19"
      },
      "Long-Term Investment": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
        "current_content_sha256": "8db7f78158ca9ed3cc9ddb515f40a9c19a29ab120e7da8011aae7b6bd58b0bba",
        "prior_content_sha256": "7c852a0476bff7d8301c7f1ba0b39f1f6a3ed7b2830e5426e6143641de1bcf25",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Long-Term Investment",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 7,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "07bdfef57831c4042f36f6b9b0a22e2578c69d348228d868f6b012100be8010c",
        "comparison_receipt_sha256": "0d3bd815458be98a3379dc2c75e8f3a0cbd59beb94716fe54dd8fd9a0cb2ef46"
      },
      "Dots": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
        "current_content_sha256": "fe1e5b3a7fe944ebece6b174fcbb73c9adfc1dd99c8a9429098e61743ae9ec82",
        "prior_content_sha256": "05cd4194ee1dffc633e1df51ed5557a3b103cba28f9a9b73cd5f5271b068494b",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Dots",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "1af9eb3f9770eb8566f938745e5409208a5f29f78c6f22ac3ed3b0afbda983f8",
        "comparison_receipt_sha256": "1096584eba6cfaab7e731d68f176548cff45fea31d45b6e5cd28054a638ff275"
      },
      "Novel": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
        "current_content_sha256": "1d9c9707e86b610d1d8e0b242967e4f6cad58513e2d67cb67964fbad61c3dc09",
        "prior_content_sha256": "2dea57ebb50745b3f18ba0f89d09086a7ff973178a93591269e94ee9fbb61fb7",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Novel",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "7547d8dc7a4757d92de34523ffcefa821b9e2ea71b73325ddc8a0f2905ba53f2",
        "comparison_receipt_sha256": "9e2ab726cb980a4ba70a9cec1c4c6ddb473e3818ec703780566a6b8076cadec9"
      },
      "Tomorrow": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
        "current_content_sha256": "4db9c2d50cb8c432255c2677cb1b2d4c25e1f489b3482be765be1a1945719bec",
        "prior_content_sha256": "6b124a04f1a75b5b9b60fd630268ab26fa4ecfed41371aeb5a3ab589ca6a8e71",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Tomorrow",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "3e320d9dc279063e7bf40e6c14eb7e35ea88c016ee5966027a8877e6a72212a1",
        "comparison_receipt_sha256": "bacd4c23a9a35abfda3036c942767a3176ebccf7f36c28b211363b794d4eb477"
      },
      "Learning": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
        "current_content_sha256": "532c9f9350e1369e7e0d580a521ff9bbe6ced7fa50f60e997aa37b1896b8942b",
        "prior_content_sha256": "523a4db80a27d0637f287c50a79f1cb1d9506823ed5318c0d27d179678b0db80",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Learning",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "0cad1b703623eeca9891adb8b8de211fa7a1705e6da871a18c7b1fc078d4c17a",
        "comparison_receipt_sha256": "fb15f15946c3252ad365939f61dbed6661ea30f0b09b6514b9aefb62e0061d70"
      },
      "Glossary": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
        "current_content_sha256": "8daa561467e970972462d7d8adc6078d233a97000b323d006adfd27c65e1fd41",
        "prior_content_sha256": "3f0264c084fbce7914031f743cc7c690d25d17589e9a8e39283005c4dfbf0952",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Glossary",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "cc6d187a6ac4468b4ce5cc0856c0c0dd0d7738f0f2a71fb786c53c77c65738ca",
        "comparison_receipt_sha256": "53e0e3cdf04163ddc9b4ae19e51bb2caf28f2c8fac27169d63feddef58aff66e"
      },
      "Proof": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
        "current_content_sha256": "f9bb803654d4ec5fa8faa0f4b5da1533dc74c1db8e374d646fafb84d1885a2a9",
        "prior_content_sha256": "caf7684bb01e30c5d4345327baec1ce908c812e5a51bb6fa93e2e99ea5b7dca3",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Proof",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "1b05491f9b782f636e4bbc8ab190378ec48996c587be84281c8c6712f3be1f51",
        "comparison_receipt_sha256": "032cbc8135075e3a24b65478e1e45767a5c81b5b068a27db708f009ed055babe"
      }
    },
    "tab_comparison_sources": {
      "Today": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Today"
      },
      "Everything": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Everything"
      },
      "Worry": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Worry"
      },
      "Big 3": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Big 3"
      },
      "Predictions": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Predictions"
      },
      "Long-Term Investment": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Long-Term Investment"
      },
      "Dots": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Dots"
      },
      "Novel": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Novel"
      },
      "Tomorrow": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Tomorrow"
      },
      "Learning": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Learning"
      },
      "Glossary": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Glossary"
      },
      "Proof": {
        "status": "MATCHED_PRIOR_TAB",
        "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
        "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
        "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "publication_at_sgt": "2026-08-03T13:53:00+08:00",
        "publication_date": "2026-08-03",
        "publication_label": "03 August 2026 OTR publish",
        "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
        "source_tab_name": "Proof"
      }
    },
    "current_comparison_source": {
      "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
      "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
      "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
      "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
      "publication_date": "2026-08-03",
      "publication_label": "03 August 2026 OTR publish",
      "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json"
    }
  },
  "otr_memory": {
    "contract_id": "OTR-PERMANENT-MEMORY-V2",
    "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
    "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
    "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
    "retained_publications_available": 54,
    "retained_records_available": 5217,
    "editorial_recall_receipt": {
      "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
      "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
      "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
      "mode": "LEARNING_CONTEXT",
      "same_day_excluded": true,
      "query_sha256": "7906617021fc4a7b410dc6d3163b8264d828f50fe06ef72ef7adc27593cf3292",
      "query_concepts": {
        "entities": [
          {
            "id": "OIL",
            "label": "Oil"
          },
          {
            "id": "JPY",
            "label": "Japanese yen"
          },
          {
            "id": "SHIPPING",
            "label": "Shipping"
          }
        ],
        "events": [
          {
            "id": "WAR_CONFLICT",
            "label": "War and conflict"
          },
          {
            "id": "SPACE_SCIENCE",
            "label": "Space science"
          },
          {
            "id": "CYBER_SECURITY",
            "label": "Cybersecurity"
          },
          {
            "id": "LABOUR_WORK",
            "label": "Jobs and work"
          },
          {
            "id": "CLIMATE_ENVIRONMENT",
            "label": "Climate and environment"
          },
          {
            "id": "HEALTH_MEDICAL",
            "label": "Health and medicine"
          }
        ],
        "terms": [
          "railway",
          "supply",
          "singapore",
          "mrt",
          "automation",
          "moves",
          "depot",
          "maintenance",
          "today",
          "com",
          "trump",
          "calls",
          "for",
          "pause",
          "military",
          "strikes",
          "iran",
          "defence",
          "security",
          "bloomberg",
          "oil",
          "slumps",
          "futures",
          "rise",
          "talks",
          "optimism",
          "markets",
          "wrap",
          "commodities",
          "finance",
          "yahoo",
          "japan",
          "confirms",
          "joint",
          "yen",
          "intervention",
          "readiness",
          "action",
          "forex",
          "benzinga",
          "crude",
          "price",
          "dives",
          "opec",
          "agrees",
          "hike",
          "russia",
          "pivot",
          "asia",
          "russian",
          "freight",
          "logistics",
          "market",
          "expand",
          "billion",
          "transport",
          "edexlive",
          "nearly",
          "half",
          "india",
          "workforce",
          "benefit",
          "productivity",
          "tool",
          "new",
          "tools",
          "the",
          "bridge",
          "chronicle",
          "anthropic",
          "claude",
          "models",
          "breached",
          "three",
          "companies",
          "during",
          "cybersecurity",
          "tests",
          "digital",
          "trust",
          "oncodaily",
          "anirban",
          "maitra",
          "clinical",
          "trial",
          "explores",
          "kras",
          "g12d",
          "mutated",
          "solid",
          "tumor",
          "treatment",
          "medical",
          "breakthroughs",
          "mashed",
          "how",
          "cheesecake",
          "factory",
          "handles",
          "leftover",
          "food",
          "culinary",
          "washington",
          "post",
          "perfect",
          "storm",
          "spread",
          "fire",
          "heat",
          "and",
          "smoke",
          "across",
          "northern",
          "hemisphere",
          "extreme",
          "weather",
          "meteorology",
          "natural",
          "disasters",
          "satellite",
          "documents",
          "appearance",
          "starship",
          "space",
          "remarkable",
          "mission",
          "satellites"
        ],
        "direction": "UP"
      },
      "before_at_sgt": "2026-08-03T15:45:45+08:00",
      "matched_record_ids": [
        "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT::TAB-01-TODAY",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-04-BIG-3",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-04-BIG-3",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-04-BIG-3",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-04-BIG-3"
      ],
      "matched_publication_ids": [
        "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
        "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT"
      ],
      "direction_counts": {
        "UP": 7,
        "DOWN": 4,
        "MIXED": 1,
        "UNSTATED": 0
      },
      "contradictory_direction_history": true,
      "use_state": "CONTEXT_ONLY",
      "current_fact_authority": false,
      "confidence_upgrade_authority": false,
      "matches": [
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "date": "2026-08-01",
          "title": "Oil risk, yen intervention and verification pressure moved together.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 309.6956,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same event: Health and medicine",
            "shared terms: yen, today, oil, and, medical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "date": "2026-08-01",
          "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
          "engine": null,
          "tab": "Big 3",
          "evidence_state": null,
          "direction": "MIXED",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [],
          "score": 304.8696,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "shared terms: yen, three, oil, intervention, and"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT::TAB-01-TODAY",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
          "date": "2026-08-02",
          "title": "Rules, freight capacity and negative clinical evidence set today's direction.",
          "engine": null,
          "tab": "Today",
          "evidence_state": null,
          "direction": "UP",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 228.3051,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: today, freight, and, yen, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-04-BIG-3",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
          "date": "2026-08-02",
          "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
          "engine": null,
          "tab": "Big 3",
          "evidence_state": null,
          "direction": "DOWN",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 227.9593,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: three, today, and, freight, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-04-BIG-3",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
          "date": "2026-08-02",
          "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
          "engine": null,
          "tab": "Big 3",
          "evidence_state": null,
          "direction": "DOWN",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 227.9593,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: three, today, and, freight, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-04-BIG-3",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
          "date": "2026-08-02",
          "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
          "engine": null,
          "tab": "Big 3",
          "evidence_state": null,
          "direction": "DOWN",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 227.9593,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: three, today, and, freight, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        },
        {
          "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-04-BIG-3",
          "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
          "date": "2026-08-02",
          "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
          "engine": null,
          "tab": "Big 3",
          "evidence_state": null,
          "direction": "DOWN",
          "matched_entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            },
            {
              "id": "SHIPPING",
              "label": "Shipping"
            }
          ],
          "matched_events": [
            {
              "id": "HEALTH_MEDICAL",
              "label": "Health and medicine"
            }
          ],
          "score": 227.9593,
          "why": [
            "same entity: Oil",
            "same entity: Japanese yen",
            "same entity: Shipping",
            "same event: Health and medicine",
            "shared terms: three, today, and, freight, clinical"
          ],
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "memory_recall_sha256": "74b5940764b09f77a2f3a9901faea11f3a2310c53f76c08f4ae4a4c801716486"
    },
    "tab_recall_receipts": {
      "Today": "1bd1aed935c3487999c28881f94a3a05eb270a5986dca5984fcaf819ba3e189a",
      "Everything": "1c8adef772d1b03fbae5b5c3d7adf68c04d30956ebe6896f8623b8aaa815b02c",
      "Worry": "36746bc1523306a7b58e4424903bd52505dd9030be5c08be103497e292e90595",
      "Big 3": "7b1f7723ee9ba2c05ce5666e7b5488b759c86bc9bc0fe1adab65659230927246",
      "Predictions": "30ed743f33e3c4bdf61b6b944ce740fff9e6c20d5733f6ac423371e5f2efee87",
      "Long-Term Investment": "ff9299fbf1710f3ac3546a67d907a3319aaf9b293b910ae5cb6060b95e4eb6d0",
      "Dots": "6536a7e5ffd6d94f4a9f2928ccdbb013b81aa588efa19f054ad35e23104c2644",
      "Novel": "5f68b4a1905ee303c8f2582103e05af12e169f6b076ed520fa68ab7a0283ba4e",
      "Tomorrow": "132a8fbac764e6228c1e9b30176a8ac954698b014f6a83af8231a6a13232af39",
      "Learning": "29fbca1057979bfa71522ee48c35efb7aac678d380994545678daca5b3216b72",
      "Glossary": "d0cb449661dc8e4da43416739af3cb3c622170eef2f643cef9aa043196b18c0f",
      "Proof": "6194d4288f52dab95efc7fab109776adbe814c4ac028574719dc423a541e4976"
    },
    "use_state": "CONTEXT_ONLY",
    "current_fact_authority": false,
    "confidence_upgrade_authority": false,
    "rule": "Every tab reads related and contradictory prior OTR records. Today's cited sources still control every current fact."
  },
  "market_pulse": {
    "label": "RISK · COST · NEXT STEPS",
    "headline": "Iran risk eased, oil fell and joint action on the yen changed the next choices.",
    "summary": "A reported pause in planned strikes and hope for Iran talks lowered immediate war fears around oil. OPEC+ added more expected supply, while the US and Japan acted together to support the yen.",
    "state": "Pause reported · oil lower for two reasons · joint yen support confirmed · lasting effect not yet proved",
    "source_ids": [
      "WORLD-CURRENT",
      "MARKET-CURRENT",
      "ENERGY-CURRENT",
      "FINANCE-CURRENT",
      "LOCAL-CURRENT",
      "SUPPLY-CURRENT",
      "TECH-CURRENT",
      "CYBER-CURRENT",
      "HEALTH-CURRENT"
    ]
  },
  "prediction_release": {
    "release_id": "OTR-PREDICTIONS-2026-08-03-1055-SGT",
    "source_path": "data/prediction-releases/OTR-PREDICTIONS-2026-08-03-1055-SGT.json",
    "canonical_content_sha256": "df4e1c4bcdfb3553217897eb5e7eda800325b506c2d3b3e9aa604bcb303b5888",
    "parent_daily_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
    "locked_at_sgt": "2026-08-03T10:55:00+08:00",
    "resolves_at_sgt": "2026-08-04T10:15:00+08:00",
    "promoted_prediction_count": 32,
    "held_disposition_count": 0,
    "assessment_receipt_id": "OTR-PREDICTION-ASSESSMENT-2026-08-03-1055-SGT",
    "research_only": true
  },
  "long_term_investment": {
    "contract_id": "OTR-LONG-TERM-INVESTMENT-TAB-V2",
    "method_id": "OTR-LONG-TERM-INVESTMENT-METHOD-V1",
    "method_sha256": "3983d77d7fb09009c30a3a8a585b5e4404421811085a9aa2bd7f9de1f69cb7c5",
    "current_receipt_id": "OTR-LONG-TERM-EXPERIMENT-PUBLICATION-2026-08-03-0315-SGT",
    "current_receipt_sha256": "6c63185d0aab95a5e954a4411c61e36d353804f95360298bdc1494d01851e88e",
    "last_complete_receipt_id": "OTR-LONG-TERM-EXPERIMENT-PUBLICATION-2026-08-03-0315-SGT",
    "last_complete_receipt_sha256": "6c63185d0aab95a5e954a4411c61e36d353804f95360298bdc1494d01851e88e",
    "receipt_release_id": "OTR-DAILY-73-2026-08-02-0150-SGT",
    "current_method_path": "/data/long-term-investment/current.json",
    "current_receipt_path": "/data/long-term-investment/current-receipt.json",
    "last_complete_receipt_path": "/data/long-term-investment/last-complete-receipt.json",
    "automation_kind": "SITES_RESEARCH_AUTOMATION",
    "daily_research_start_time_sgt": "12:00",
    "schedule_label": "Daily research starts at 12:00 SGT",
    "research_batch_completed_at_sgt": "2026-08-02T15:56:00+08:00",
    "price_resync_completed_at_sgt": "2026-08-02T15:13:25+08:00",
    "publication_completed_at_sgt": "2026-08-03T03:15:00+08:00",
    "publication_state": "EXPERIMENT_SUPPLEMENT_PUBLISHED",
    "hold_state": null,
    "research_only": true,
    "experiment_id": "OTR-LONG-TERM-EXPERIMENT-2026-08-03-0108-SGT-C01",
    "experiment_sha256": "5d07202c1d0094ec0a3ba3bbc42825de80f9a1f6b3bd90d75081eed459b56b29",
    "experiment_status": "PROVISIONAL_LATEST_COMPLETED_SESSION",
    "experiment_current_path": "data/long-term-investment/experiments/current.json",
    "experiment_public_path": "/data/long-term-investment/experiments/current.json"
  },
  "story_spine": [
    {
      "step": 1,
      "title": "A pause changes the immediate path",
      "body": "The reported pause in planned Iran strikes lowers short-term danger without proving a lasting peace deal.",
      "source_ids": [
        "WORLD-CURRENT",
        "MARKET-CURRENT"
      ]
    },
    {
      "step": 2,
      "title": "Oil shows the first clear result",
      "body": "Hope for talks appears beside weaker oil and higher US share prices in the saved market report.",
      "source_ids": [
        "WORLD-CURRENT",
        "MARKET-CURRENT"
      ]
    },
    {
      "step": 3,
      "title": "Supply gives oil a second cause",
      "body": "Another OPEC+ supply increase means talks cannot explain the whole oil move by themselves.",
      "source_ids": [
        "ENERGY-CURRENT",
        "MARKET-CURRENT"
      ]
    },
    {
      "step": 4,
      "title": "Joint action changes yen risk",
      "body": "Action by the US and Japan makes one-sided bets against the yen more risky. The next question is whether the move lasts.",
      "source_ids": [
        "FINANCE-CURRENT",
        "MARKET-CURRENT"
      ]
    },
    {
      "step": 5,
      "title": "Wider Asian effects need later proof",
      "body": "The edition does not directly prove swings across all Asian share markets, so later reports must supply that proof.",
      "source_ids": [
        "FINANCE-CURRENT",
        "CLIMATE-CURRENT"
      ]
    },
    {
      "step": 6,
      "title": "Decisions depend on what happens next",
      "body": "Watch for new strikes, a rise in oil or fading yen support before treating the first response as lasting.",
      "source_ids": [
        "WORLD-CURRENT",
        "ENERGY-CURRENT",
        "FINANCE-CURRENT"
      ]
    }
  ],
  "sources": [
    {
      "id": "LOCAL-CURRENT",
      "label": "Railway Supply",
      "fact": "Railway Supply reported: Singapore MRT Automation Moves Into Depot Maintenance",
      "url": "https://www.railway.supply/singapore-mrt-automation-moves-into-depot-maintenance/",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-001-02",
      "engine": "Singapore News",
      "publisher_timestamp": "2026-08-02T15:17:28.000Z",
      "canonical_event_key": "EVENT-e668844970e8ac1e1f8d",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "WORLD-CURRENT",
      "label": "TODAY.com",
      "fact": "TODAY.com reported: Trump Calls for Pause on Military Strikes Against Iran",
      "url": "https://www.today.com/video/trump-calls-for-pause-on-military-strikes-against-iran-267641413983",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-036-05",
      "engine": "Defence & Security",
      "publisher_timestamp": "2026-08-02T12:32:59.000Z",
      "canonical_event_key": "EVENT-b58ca86ade854a6d22e1",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "MARKET-CURRENT",
      "label": "Bloomberg.com",
      "fact": "Bloomberg.com reported: Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap",
      "url": "https://www.bloomberg.com/news/articles/2026-08-02/oil-slumps-us-futures-rise-on-iran-talks-optimism-markets-wrap",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-072-07",
      "engine": "Commodities",
      "publisher_timestamp": "2026-08-02T22:09:16.465Z",
      "canonical_event_key": "EVENT-12f3bf479b407fda8857",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "FINANCE-CURRENT",
      "label": "finance.yahoo.com",
      "fact": "finance.yahoo.com reported: Japan confirms joint yen intervention with US, signals readiness for more action",
      "url": "https://finance.yahoo.com/markets/currencies/articles/japan-vow-coordination-us-weak-210127634.html",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-021-10",
      "engine": "Forex Signals",
      "publisher_timestamp": "2026-08-02T23:54:20.000Z",
      "canonical_event_key": "EVENT-68ac4c4d5a64a472e976",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "ENERGY-CURRENT",
      "label": "benzinga.com",
      "fact": "benzinga.com reported: Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike",
      "url": "https://www.benzinga.com/markets/commodities/26/08/60862086/crude-oil-price-dives-as-opec-agrees-to-another-supply-hike",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-072-01",
      "engine": "Commodities",
      "publisher_timestamp": "2026-08-02T16:31:38.000Z",
      "canonical_event_key": "EVENT-95b3271a7626a657273e",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "SUPPLY-CURRENT",
      "label": "russia's pivot to asia",
      "fact": "russia's pivot to asia reported: Russian Freight & Logistics Market To Expand 13% To US$86 Billion In 2031: Report",
      "url": "https://russiaspivottoasia.com/russian-freight-logistics-market-to-expand-13-to-us86-billion-in-2031-report/",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-037-03",
      "engine": "Transport & Logistics",
      "publisher_timestamp": "2026-08-02T13:43:31.000Z",
      "canonical_event_key": "EVENT-46f4c973fbd1e1170159",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "TECH-CURRENT",
      "label": "EdexLive",
      "fact": "EdexLive reported: Nearly half of India’s workforce could benefit from AI as productivity tool: Report",
      "url": "https://www.edexlive.com/amp/story/news/nearly-half-of-indias-workforce-could-benefit-from-ai-as-productivity-tool-report",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-010-01",
      "engine": "New Tools / AI Tools",
      "publisher_timestamp": "2026-08-02T12:30:00.000Z",
      "canonical_event_key": "EVENT-ecff80c17fb038bd7da6",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "CYBER-CURRENT",
      "label": "The Bridge Chronicle",
      "fact": "The Bridge Chronicle reported: Anthropic Claude AI Models Breached Three Companies During Cybersecurity Tests",
      "url": "https://www.thebridgechronicle.com/tech/anthropic-claude-ai-cybersecurity-tests-company-breaches-mp99",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-033-09",
      "engine": "Cybersecurity & Digital Trust",
      "publisher_timestamp": "2026-08-02T06:53:00.000Z",
      "canonical_event_key": "EVENT-44aca06e075191fa3792",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "HEALTH-CURRENT",
      "label": "Oncodaily",
      "fact": "Oncodaily reported: Anirban Maitra: Clinical Trial Explores KRAS G12D-Mutated Solid Tumor Treatment",
      "url": "https://oncodaily.com/science/anirban-maitra-557579",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-025-03",
      "engine": "Medical breakthroughs",
      "publisher_timestamp": "2026-08-02T14:10:02.000Z",
      "canonical_event_key": "EVENT-e6af34ca3a9abd3e12be",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "FOOD-CURRENT",
      "label": "Mashed",
      "fact": "Mashed reported: How The Cheesecake Factory Handles Leftover Food",
      "url": "https://www.mashed.com/2221776/what-happens-cheesecake-factory-leftovers/",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-018-04",
      "engine": "Culinary Signals",
      "publisher_timestamp": "2026-08-02T16:03:00.000Z",
      "canonical_event_key": "EVENT-6cd2a30b502effdcebe1",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "CLIMATE-CURRENT",
      "label": "The Washington Post",
      "fact": "The Washington Post reported: How a ‘perfect storm’ spread fire, heat and smoke across the Northern Hemisphere",
      "url": "https://www.washingtonpost.com/weather/2026/08/02/perfect-storm-conditions-spread-fire-heat-smoke-july/",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-065-04",
      "engine": "Extreme Weather, Meteorology & Natural Disasters",
      "publisher_timestamp": "2026-08-02T09:00:00.000Z",
      "canonical_event_key": "EVENT-7978a3394bf02991eb72",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    },
    {
      "id": "FUTURE-CURRENT",
      "label": "صوت الإمارات",
      "fact": "صوت الإمارات reported: A new satellite documents the appearance of \"Starship\" in space during a remarkable mission",
      "url": "https://www.voiceofemirates.com/en/science-and-tech/2026/08/02/a-new-satellite-documents-the-appearance-of-starship-in-space-during-a-remarkable-mission/",
      "source_type": "SOURCE_LINKED_CURRENT",
      "canonical_signal_id": "OTR-20260803-035-09",
      "engine": "Space & Satellites",
      "publisher_timestamp": "2026-08-02T05:16:25.000Z",
      "canonical_event_key": "EVENT-029b41c236c68c01b4fa",
      "evidence_state": "SOURCE_LINKED_CURRENT",
      "source_independence": "ONE_PUBLISHER_REPORT"
    }
  ],
  "tabs": {
    "Today": {
      "eyebrow": "TODAY · 3 AUGUST 2026",
      "question": "What changed before 09:54 SGT today?",
      "headline": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.",
      "narrative": [
        "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, these reports show that hopes for Iran talks quickly lowered fears of a wider war. Oil fell and US share prices rose before 09:54 SGT. A pause is not a peace deal, so this change can still reverse.",
        "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” More supply from OPEC+ gave oil another reason to fall. The US and Japan also acted together to support the yen. Reports on wider Asian share-market swings came later, so they are not added to this earlier record."
      ],
      "beats": [
        {
          "label": "IRAN TALKS",
          "title": "A pause lowered immediate fears",
          "body": "The reported pause in planned strikes opened a chance for talks. We still need later official news to know if it will last.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "OIL",
          "title": "Two forces pushed oil down",
          "body": "Hopes for Iran talks reduced fears about supply, while OPEC+ also agreed to increase supply.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "YEN",
          "title": "The US and Japan acted together",
          "body": "Their joint action made bets against the yen more risky and may affect money and market choices across Asia.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.",
      "history_echo": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\". This is background only. It compares the nearest earlier saved Today section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Today",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Today",
          "question": "What changed before 09:54 SGT today?",
          "headline": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, these reports show that hopes for Iran talks quickly lowered fears of a wider war. Oil fell and US share prices rose before 09:54 SGT. A pause is not a peace deal, so this change can still reverse.",
            "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” More supply from OPEC+ gave oil another reason to fall. The US and Japan also acted together to support the yen. Reports on wider Asian share-market swings came later, so they are not added to this earlier record."
          ],
          "beats": [
            {
              "label": "IRAN TALKS",
              "title": "A pause lowered immediate fears",
              "body": "The reported pause in planned strikes opened a chance for talks. We still need later official news to know if it will last.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "OIL",
              "title": "Two forces pushed oil down",
              "body": "Hopes for Iran talks reduced fears about supply, while OPEC+ also agreed to increase supply.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "YEN",
              "title": "The US and Japan acted together",
              "body": "Their joint action made bets against the yen more risky and may affect money and market choices across Asia.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.",
          "watch_conditions": [
            "Whether the strike pause holds",
            "Whether oil weakness survives both drivers",
            "Whether joint yen support repeats or fades"
          ],
          "invalidation": "Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.",
          "content_sha256": "1fd76751189645b92b324f7374f204d73f94169aecee0beba8b88872b47dd908",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Today",
          "question": "What changed inside the evidence window ending at 09:54 SGT?",
          "headline": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, the reports show a fast repricing of war risk: Iran-talk optimism travelled into oil and US futures before the evidence cut. A pause is not a settlement, so the change is meaningful but still reversible.",
            "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” The OPEC+ supply increase gives oil a second downward driver, while the joint US–Japan yen action creates a separate currency shock. The locked cut does not directly measure Asia-wide equity volatility, so that claim remains a next-check item rather than a backfilled fact."
          ],
          "beats": [
            {
              "label": "DIPLOMACY",
              "title": "A pause changed the immediate risk premium",
              "body": "The reported pause in military strikes made a near-term de-escalation path possible. It remains fragile until later official action shows whether the pause holds.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "OIL",
              "title": "Two forces pushed in the same direction",
              "body": "Iran-talk optimism reduced a conflict premium while another OPEC+ supply increase added a separate supply-side reason for weaker crude.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "YEN",
              "title": "Joint official action changed currency positioning",
              "body": "Confirmed US–Japan intervention raises the cost of betting against the yen and can quickly affect hedging, funding and regional risk choices.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
          "watch_conditions": [
            "Whether the strike pause holds",
            "Whether oil weakness survives both drivers",
            "Whether joint yen support repeats or fades"
          ],
          "invalidation": "Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.",
          "content_sha256": "10c07324fe71267ca583cef2f705036db78d6312a2c9d198a756e656315f217b",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids",
            "watch_conditions"
          ],
          "question": {
            "changed": true,
            "prior": "What changed inside the evidence window ending at 09:54 SGT?",
            "current": "What changed before 09:54 SGT today?"
          },
          "headline": {
            "changed": true,
            "prior": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
            "current": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, these reports show that hopes for Iran talks quickly lowered fears of a wider war. Oil fell and US share prices rose before 09:54 SGT. A pause is not a peace deal, so this change can still reverse.",
              "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” More supply from OPEC+ gave oil another reason to fall. The US and Japan also acted together to support the yen. Reports on wider Asian share-market swings came later, so they are not added to this earlier record."
            ],
            "removed": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, the reports show a fast repricing of war risk: Iran-talk optimism travelled into oil and US futures before the evidence cut. A pause is not a settlement, so the change is meaningful but still reversible.",
              "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” The OPEC+ supply increase gives oil a second downward driver, while the joint US–Japan yen action creates a separate currency shock. The locked cut does not directly measure Asia-wide equity volatility, so that claim remains a next-check item rather than a backfilled fact."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "A pause lowered immediate fears",
              "Two forces pushed oil down",
              "The US and Japan acted together"
            ],
            "removed_titles": [
              "A pause changed the immediate risk premium",
              "Two forces pushed in the same direction",
              "Joint official action changed currency positioning"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
            "current": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last."
          },
          "watch_conditions": {
            "changed": false,
            "prior_count": 3,
            "current_count": 3,
            "added": [],
            "removed": [],
            "retained": [
              "Whether the strike pause holds",
              "Whether oil weakness survives both drivers",
              "Whether joint yen support repeats or fades"
            ],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.",
            "current": "Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move."
          }
        },
        "similarities": [
          "Both records belong to the Today canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged.",
          "The saved watch conditions is unchanged."
        ],
        "differences": [
          "Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
          "Headline changed from \"Iran strike pause, falling oil and joint yen action reset the day's risk map.\" to \"A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added A pause lowered immediate fears, Two forces pushed oil down, The US and Japan acted together; removed A pause changed the immediate risk premium, Two forces pushed in the same direction, Joint official action changed currency positioning.",
          "Market connection changed from \"The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.\" to \"The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.\".",
          "Invalidation condition changed from \"Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.\" to \"Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Today",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "085d70f9a4276131896b1acb2c8e52e145f77490f911a99fc936841c55cd689f",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "d93d32dfeca134619483d37d650311b5d503df036659ca670eeea4ed00c2435c"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TODAY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TODAY",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Today",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Today",
          "source_headline": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
          "source_question": "What changed inside the evidence window ending at 09:54 SGT?",
          "source_market_connection": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "10c07324fe71267ca583cef2f705036db78d6312a2c9d198a756e656315f217b",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Today",
          "current_headline": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.",
          "current_question": "What changed before 09:54 SGT today?",
          "current_market_connection": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "1fd76751189645b92b324f7374f204d73f94169aecee0beba8b88872b47dd908",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids",
              "watch_conditions"
            ],
            "question": {
              "changed": true,
              "prior": "What changed inside the evidence window ending at 09:54 SGT?",
              "current": "What changed before 09:54 SGT today?"
            },
            "headline": {
              "changed": true,
              "prior": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
              "current": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, these reports show that hopes for Iran talks quickly lowered fears of a wider war. Oil fell and US share prices rose before 09:54 SGT. A pause is not a peace deal, so this change can still reverse.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” More supply from OPEC+ gave oil another reason to fall. The US and Japan also acted together to support the yen. Reports on wider Asian share-market swings came later, so they are not added to this earlier record."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, the reports show a fast repricing of war risk: Iran-talk optimism travelled into oil and US futures before the evidence cut. A pause is not a settlement, so the change is meaningful but still reversible.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” The OPEC+ supply increase gives oil a second downward driver, while the joint US–Japan yen action creates a separate currency shock. The locked cut does not directly measure Asia-wide equity volatility, so that claim remains a next-check item rather than a backfilled fact."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A pause lowered immediate fears",
                "Two forces pushed oil down",
                "The US and Japan acted together"
              ],
              "removed_titles": [
                "A pause changed the immediate risk premium",
                "Two forces pushed in the same direction",
                "Joint official action changed currency positioning"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
              "current": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last."
            },
            "watch_conditions": {
              "changed": false,
              "prior_count": 3,
              "current_count": 3,
              "added": [],
              "removed": [],
              "retained": [
                "Whether the strike pause holds",
                "Whether oil weakness survives both drivers",
                "Whether joint yen support repeats or fades"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.",
              "current": "Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move."
            }
          },
          "similarities": [
            "Both records belong to the Today canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged.",
            "The saved watch conditions is unchanged."
          ],
          "differences": [
            "Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
            "Headline changed from \"Iran strike pause, falling oil and joint yen action reset the day's risk map.\" to \"A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A pause lowered immediate fears, Two forces pushed oil down, The US and Japan acted together; removed A pause changed the immediate risk premium, Two forces pushed in the same direction, Joint official action changed currency positioning.",
            "Market connection changed from \"The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.\" to \"The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.\".",
            "Invalidation condition changed from \"Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.\" to \"Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.\"."
          ],
          "comparison": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
          "difference": "Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\". Headline changed from \"Iran strike pause, falling oil and joint yen action reset the day's risk map.\" to \"A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A pause lowered immediate fears, Two forces pushed oil down, The US and Japan acted together; removed A pause changed the immediate risk premium, Two forces pushed in the same direction, Joint official action changed currency positioning. Market connection changed from \"The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.\" to \"The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.\". Invalidation condition changed from \"Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.\" to \"Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Today",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "085d70f9a4276131896b1acb2c8e52e145f77490f911a99fc936841c55cd689f",
          "comparison_receipt_sha256": "d93d32dfeca134619483d37d650311b5d503df036659ca670eeea4ed00c2435c",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "9c9c3242fe15b08f0aa52aa7b2e3250c692668795bf822c6cd86edc801d597ed",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "pause",
            "planned",
            "iran",
            "strikes",
            "falling",
            "oil",
            "and",
            "joint",
            "action",
            "the",
            "yen",
            "changed",
            "today",
            "risk",
            "picture",
            "simple",
            "hopes",
            "for",
            "talks",
            "lowered",
            "war",
            "fears",
            "fell",
            "share",
            "prices",
            "rose",
            "opec",
            "supply",
            "pushed",
            "down",
            "separate",
            "japan",
            "supported",
            "still",
            "need",
            "see",
            "whether",
            "changes",
            "last",
            "com",
            "trump",
            "calls",
            "military",
            "bloomberg",
            "slumps",
            "futures",
            "rise",
            "optimism",
            "markets",
            "wrap",
            "together",
            "show",
            "quickly",
            "wider",
            "sgt",
            "not",
            "peace",
            "deal",
            "change",
            "can",
            "reverse",
            "benzinga",
            "crude",
            "price",
            "dives",
            "agrees",
            "hike",
            "finance",
            "yahoo",
            "confirms",
            "intervention",
            "readiness",
            "gave",
            "reason",
            "fall",
            "acted",
            "support",
            "asian",
            "market",
            "swings",
            "came",
            "later",
            "are",
            "added",
            "earlier",
            "record",
            "strike",
            "holds",
            "weakness",
            "survives",
            "drivers",
            "repeats",
            "fades"
          ],
          "direction": "MIXED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 340.6237,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: sgt, yen, today, oil, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 321.6456,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, sgt, oil, intervention, risk"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 212.0001,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, today, sgt"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 212.0001,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, today, sgt"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 212.0001,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, today, sgt"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "1bd1aed935c3487999c28881f94a3a05eb270a5986dca5984fcaf819ba3e189a"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TODAY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TODAY",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Today",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Today",
          "source_headline": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
          "source_question": "What changed inside the evidence window ending at 09:54 SGT?",
          "source_market_connection": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "10c07324fe71267ca583cef2f705036db78d6312a2c9d198a756e656315f217b",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Today",
          "current_headline": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.",
          "current_question": "What changed before 09:54 SGT today?",
          "current_market_connection": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "1fd76751189645b92b324f7374f204d73f94169aecee0beba8b88872b47dd908",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids",
              "watch_conditions"
            ],
            "question": {
              "changed": true,
              "prior": "What changed inside the evidence window ending at 09:54 SGT?",
              "current": "What changed before 09:54 SGT today?"
            },
            "headline": {
              "changed": true,
              "prior": "Iran strike pause, falling oil and joint yen action reset the day's risk map.",
              "current": "A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, these reports show that hopes for Iran talks quickly lowered fears of a wider war. Oil fell and US share prices rose before 09:54 SGT. A pause is not a peace deal, so this change can still reverse.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” More supply from OPEC+ gave oil another reason to fall. The US and Japan also acted together to support the yen. Reports on wider Asian share-market swings came later, so they are not added to this earlier record."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” Together, the reports show a fast repricing of war risk: Iran-talk optimism travelled into oil and US futures before the evidence cut. A pause is not a settlement, so the change is meaningful but still reversible.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” The OPEC+ supply increase gives oil a second downward driver, while the joint US–Japan yen action creates a separate currency shock. The locked cut does not directly measure Asia-wide equity volatility, so that claim remains a next-check item rather than a backfilled fact."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A pause lowered immediate fears",
                "Two forces pushed oil down",
                "The US and Japan acted together"
              ],
              "removed_titles": [
                "A pause changed the immediate risk premium",
                "Two forces pushed in the same direction",
                "Joint official action changed currency positioning"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.",
              "current": "The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last."
            },
            "watch_conditions": {
              "changed": false,
              "prior_count": 3,
              "current_count": 3,
              "added": [],
              "removed": [],
              "retained": [
                "Whether the strike pause holds",
                "Whether oil weakness survives both drivers",
                "Whether joint yen support repeats or fades"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.",
              "current": "Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move."
            }
          },
          "similarities": [
            "Both records belong to the Today canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged.",
            "The saved watch conditions is unchanged."
          ],
          "differences": [
            "Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
            "Headline changed from \"Iran strike pause, falling oil and joint yen action reset the day's risk map.\" to \"A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A pause lowered immediate fears, Two forces pushed oil down, The US and Japan acted together; removed A pause changed the immediate risk premium, Two forces pushed in the same direction, Joint official action changed currency positioning.",
            "Market connection changed from \"The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.\" to \"The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.\".",
            "Invalidation condition changed from \"Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.\" to \"Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.\"."
          ],
          "comparison": "The Today tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\".",
          "difference": "Question changed from \"What changed inside the evidence window ending at 09:54 SGT?\" to \"What changed before 09:54 SGT today?\". Headline changed from \"Iran strike pause, falling oil and joint yen action reset the day's risk map.\" to \"A pause in planned Iran strikes, falling oil and joint action on the yen changed today's risk picture.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A pause lowered immediate fears, Two forces pushed oil down, The US and Japan acted together; removed A pause changed the immediate risk premium, Two forces pushed in the same direction, Joint official action changed currency positioning. Market connection changed from \"The immediate map is diplomacy → lower conflict premium → weaker oil and firmer futures, alongside OPEC+ supply pressure and a separate official yen intervention. Each arrow must still survive the next observation.\" to \"The simple picture is this: hopes for talks lowered war fears, oil fell, and US share prices rose. More OPEC+ supply also pushed oil down. Separate action by the US and Japan supported the yen. We still need to see whether these changes last.\". Invalidation condition changed from \"Revise the synthesis if military action resumes, oil reverses despite the reported drivers, or the yen action fails to change positioning beyond the first response.\" to \"Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Today",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "085d70f9a4276131896b1acb2c8e52e145f77490f911a99fc936841c55cd689f",
          "comparison_receipt_sha256": "d93d32dfeca134619483d37d650311b5d503df036659ca670eeea4ed00c2435c",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Whether the strike pause holds",
        "Whether oil weakness survives both drivers",
        "Whether joint yen support repeats or fades"
      ],
      "invalidation": "Change this view if strikes restart, oil rises again despite both forces, or support for the yen fades after the first move.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Everything": {
      "eyebrow": "EVERYTHING · 3 AUGUST 2026 FULL SEARCH",
      "question": "What else did today's full search find?",
      "headline": "584 current signals give a wide view, while the main story leads with the news that matters most.",
      "narrative": [
        "OTR's 73 search areas kept 584 checked items. The main group is clear: a pause in planned Iran strikes, weaker oil as hopes for talks rose, more OPEC+ supply, and joint action to support the yen.",
        "The wider feed uses 566 direct links from 384 websites. It also covers Singapore, supply, technology, online safety, health, food, climate and future ideas. A wide search is useful, but the main page must still put the most important news first."
      ],
      "beats": [
        {
          "label": "MAIN NEWS",
          "title": "World events and markets lead",
          "body": "The Iran pause, oil move and yen action can quickly affect costs, money and business choices.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "ANOTHER CAUSE",
          "title": "Oil did not fall for one reason",
          "body": "Lower war fears and expected OPEC+ supply both helped push oil down.",
          "source_ids": [
            "ENERGY-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "WIDER VIEW",
          "title": "Other useful topics remain available",
          "body": "Singapore, technology, health and climate reports remain open for readers who need them.",
          "source_ids": [
            "LOCAL-CURRENT",
            "TECH-CURRENT",
            "HEALTH-CURRENT",
            "CLIMATE-CURRENT"
          ]
        }
      ],
      "market_connection": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.",
      "history_echo": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\". This is background only. It compares the nearest earlier saved Everything section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Everything",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Everything",
          "question": "What else did today's full search find?",
          "headline": "584 current signals give a wide view, while the main story leads with the news that matters most.",
          "narrative": [
            "OTR's 73 search areas kept 584 checked items. The main group is clear: a pause in planned Iran strikes, weaker oil as hopes for talks rose, more OPEC+ supply, and joint action to support the yen.",
            "The wider feed uses 566 direct links from 384 websites. It also covers Singapore, supply, technology, online safety, health, food, climate and future ideas. A wide search is useful, but the main page must still put the most important news first."
          ],
          "beats": [
            {
              "label": "MAIN NEWS",
              "title": "World events and markets lead",
              "body": "The Iran pause, oil move and yen action can quickly affect costs, money and business choices.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "ANOTHER CAUSE",
              "title": "Oil did not fall for one reason",
              "body": "Lower war fears and expected OPEC+ supply both helped push oil down.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "WIDER VIEW",
              "title": "Other useful topics remain available",
              "body": "Singapore, technology, health and climate reports remain open for readers who need them.",
              "source_ids": [
                "CLIMATE-CURRENT",
                "HEALTH-CURRENT",
                "LOCAL-CURRENT",
                "TECH-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "CLIMATE-CURRENT",
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "HEALTH-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.",
          "watch_conditions": [
            "News that affects several areas",
            "Reports that disagree",
            "Important news that arrived after this edition closed"
          ],
          "invalidation": "Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.",
          "content_sha256": "b4c4470bba0df4f27a386a4bcf9329bdd5bd82861ab83e0e421c7ff679dde0a0",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Everything",
          "question": "What does the complete release add beyond the main story?",
          "headline": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
          "narrative": [
            "The 73-engine release holds 584 source-linked rows. The lead cluster is now easy to see: a reported Iran strike pause, oil weakness linked to talks optimism, another OPEC+ supply increase and confirmed joint action to support the yen.",
            "The wider feed spans 566 direct URLs across 384 domains, covering local, supply, technology, cyber, health, food, climate and future-system lanes. That breadth is useful for search and follow-up, but the editorial must still rank material impact instead of treating every row as equal."
          ],
          "beats": [
            {
              "label": "LEAD",
              "title": "Geopolitics and markets form the lead cluster",
              "body": "The strike-pause, oil and yen records can alter near-term risk, funding and operating choices across several markets.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "SECOND CAUSE",
              "title": "Supply policy matters beside diplomacy",
              "body": "The OPEC+ decision prevents a one-cause story: lower crude can reflect both changing war risk and changing expected supply.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "WIDER MAP",
              "title": "Other lanes remain searchable, not discarded",
              "body": "Local, technology, health and climate records stay available for readers whose decisions sit outside the lead cluster.",
              "source_ids": [
                "CLIMATE-CURRENT",
                "HEALTH-CURRENT",
                "LOCAL-CURRENT",
                "TECH-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "CLIMATE-CURRENT",
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "HEALTH-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
          "watch_conditions": [
            "Lead events that cross several engines",
            "Important contradictions",
            "Post-cut evidence that deserves a labelled update"
          ],
          "invalidation": "The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.",
          "content_sha256": "a1a4fa573015c4eaf7f4ca1a638e672449e4f733261ed9b5249ecaa809562e6e",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "What does the complete release add beyond the main story?",
            "current": "What else did today's full search find?"
          },
          "headline": {
            "changed": true,
            "prior": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
            "current": "584 current signals give a wide view, while the main story leads with the news that matters most."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "OTR's 73 search areas kept 584 checked items. The main group is clear: a pause in planned Iran strikes, weaker oil as hopes for talks rose, more OPEC+ supply, and joint action to support the yen.",
              "The wider feed uses 566 direct links from 384 websites. It also covers Singapore, supply, technology, online safety, health, food, climate and future ideas. A wide search is useful, but the main page must still put the most important news first."
            ],
            "removed": [
              "The 73-engine release holds 584 source-linked rows. The lead cluster is now easy to see: a reported Iran strike pause, oil weakness linked to talks optimism, another OPEC+ supply increase and confirmed joint action to support the yen.",
              "The wider feed spans 566 direct URLs across 384 domains, covering local, supply, technology, cyber, health, food, climate and future-system lanes. That breadth is useful for search and follow-up, but the editorial must still rank material impact instead of treating every row as equal."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "World events and markets lead",
              "Oil did not fall for one reason",
              "Other useful topics remain available"
            ],
            "removed_titles": [
              "Geopolitics and markets form the lead cluster",
              "Supply policy matters beside diplomacy",
              "Other lanes remain searchable, not discarded"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 8,
            "current_count": 8,
            "added": [],
            "removed": [],
            "retained": [
              "CLIMATE-CURRENT",
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "HEALTH-CURRENT",
              "LOCAL-CURRENT",
              "MARKET-CURRENT",
              "TECH-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
            "current": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "News that affects several areas",
              "Reports that disagree",
              "Important news that arrived after this edition closed"
            ],
            "removed": [
              "Lead events that cross several engines",
              "Important contradictions",
              "Post-cut evidence that deserves a labelled update"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.",
            "current": "Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result."
          }
        },
        "similarities": [
          "Both records belong to the Everything canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
          "Headline changed from \"584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.\" to \"584 current signals give a wide view, while the main story leads with the news that matters most.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added World events and markets lead, Oil did not fall for one reason, Other useful topics remain available; removed Geopolitics and markets form the lead cluster, Supply policy matters beside diplomacy, Other lanes remain searchable, not discarded.",
          "Market connection changed from \"Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.\" to \"The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.\" to \"Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Everything",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 13,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "5c881cf105eaeb7a196e9ff199fe8a136ee9d86e89465cefafeaadf32a379efc",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "61ada41a9546788812442d1e709733dedcc8a91cfd09ccee2df07127e1595775"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-EVERYTHING",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-EVERYTHING",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Everything",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Everything",
          "source_headline": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
          "source_question": "What does the complete release add beyond the main story?",
          "source_market_connection": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "a1a4fa573015c4eaf7f4ca1a638e672449e4f733261ed9b5249ecaa809562e6e",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Everything",
          "current_headline": "584 current signals give a wide view, while the main story leads with the news that matters most.",
          "current_question": "What else did today's full search find?",
          "current_market_connection": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "b4c4470bba0df4f27a386a4bcf9329bdd5bd82861ab83e0e421c7ff679dde0a0",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "What does the complete release add beyond the main story?",
              "current": "What else did today's full search find?"
            },
            "headline": {
              "changed": true,
              "prior": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
              "current": "584 current signals give a wide view, while the main story leads with the news that matters most."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "OTR's 73 search areas kept 584 checked items. The main group is clear: a pause in planned Iran strikes, weaker oil as hopes for talks rose, more OPEC+ supply, and joint action to support the yen.",
                "The wider feed uses 566 direct links from 384 websites. It also covers Singapore, supply, technology, online safety, health, food, climate and future ideas. A wide search is useful, but the main page must still put the most important news first."
              ],
              "removed": [
                "The 73-engine release holds 584 source-linked rows. The lead cluster is now easy to see: a reported Iran strike pause, oil weakness linked to talks optimism, another OPEC+ supply increase and confirmed joint action to support the yen.",
                "The wider feed spans 566 direct URLs across 384 domains, covering local, supply, technology, cyber, health, food, climate and future-system lanes. That breadth is useful for search and follow-up, but the editorial must still rank material impact instead of treating every row as equal."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "World events and markets lead",
                "Oil did not fall for one reason",
                "Other useful topics remain available"
              ],
              "removed_titles": [
                "Geopolitics and markets form the lead cluster",
                "Supply policy matters beside diplomacy",
                "Other lanes remain searchable, not discarded"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 8,
              "current_count": 8,
              "added": [],
              "removed": [],
              "retained": [
                "CLIMATE-CURRENT",
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "HEALTH-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
              "current": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "News that affects several areas",
                "Reports that disagree",
                "Important news that arrived after this edition closed"
              ],
              "removed": [
                "Lead events that cross several engines",
                "Important contradictions",
                "Post-cut evidence that deserves a labelled update"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.",
              "current": "Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result."
            }
          },
          "similarities": [
            "Both records belong to the Everything canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
            "Headline changed from \"584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.\" to \"584 current signals give a wide view, while the main story leads with the news that matters most.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added World events and markets lead, Oil did not fall for one reason, Other useful topics remain available; removed Geopolitics and markets form the lead cluster, Supply policy matters beside diplomacy, Other lanes remain searchable, not discarded.",
            "Market connection changed from \"Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.\" to \"The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.\" to \"Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.\"."
          ],
          "comparison": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
          "difference": "Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\". Headline changed from \"584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.\" to \"584 current signals give a wide view, while the main story leads with the news that matters most.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added World events and markets lead, Oil did not fall for one reason, Other useful topics remain available; removed Geopolitics and markets form the lead cluster, Supply policy matters beside diplomacy, Other lanes remain searchable, not discarded. Market connection changed from \"Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.\" to \"The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.\" to \"Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Everything",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 13,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "5c881cf105eaeb7a196e9ff199fe8a136ee9d86e89465cefafeaadf32a379efc",
          "comparison_receipt_sha256": "61ada41a9546788812442d1e709733dedcc8a91cfd09ccee2df07127e1595775",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "22dc69829e0c7217bd65e584fb6644d665e67862b0e2b1fef3b3105300561eea",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            },
            {
              "id": "CLIMATE_ENVIRONMENT",
              "label": "Climate and environment"
            }
          ],
          "terms": [
            "give",
            "wide",
            "view",
            "the",
            "main",
            "story",
            "leads",
            "matters",
            "search",
            "shows",
            "found",
            "deserves",
            "attention",
            "first",
            "useful",
            "service",
            "needs",
            "areas",
            "kept",
            "checked",
            "items",
            "group",
            "clear",
            "pause",
            "planned",
            "iran",
            "strikes",
            "weaker",
            "oil",
            "hopes",
            "for",
            "talks",
            "rose",
            "opec",
            "supply",
            "and",
            "joint",
            "action",
            "support",
            "yen",
            "wider",
            "feed",
            "uses",
            "direct",
            "links",
            "websites",
            "covers",
            "singapore",
            "technology",
            "online",
            "safety",
            "health",
            "food",
            "climate",
            "future",
            "ideas",
            "but",
            "page",
            "must",
            "still",
            "put",
            "important",
            "affects",
            "several",
            "disagree",
            "arrived",
            "edition",
            "closed"
          ],
          "direction": "MIXED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 214.3311,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, oil, and, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 202.8233,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, story, oil, and, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 179.5484,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, the, edition"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 179.5484,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, the, edition"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 179.5484,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, the, edition"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "1c8adef772d1b03fbae5b5c3d7adf68c04d30956ebe6896f8623b8aaa815b02c"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-EVERYTHING",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-EVERYTHING",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Everything",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Everything",
          "source_headline": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
          "source_question": "What does the complete release add beyond the main story?",
          "source_market_connection": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "a1a4fa573015c4eaf7f4ca1a638e672449e4f733261ed9b5249ecaa809562e6e",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Everything",
          "current_headline": "584 current signals give a wide view, while the main story leads with the news that matters most.",
          "current_question": "What else did today's full search find?",
          "current_market_connection": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "b4c4470bba0df4f27a386a4bcf9329bdd5bd82861ab83e0e421c7ff679dde0a0",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "What does the complete release add beyond the main story?",
              "current": "What else did today's full search find?"
            },
            "headline": {
              "changed": true,
              "prior": "584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.",
              "current": "584 current signals give a wide view, while the main story leads with the news that matters most."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "OTR's 73 search areas kept 584 checked items. The main group is clear: a pause in planned Iran strikes, weaker oil as hopes for talks rose, more OPEC+ supply, and joint action to support the yen.",
                "The wider feed uses 566 direct links from 384 websites. It also covers Singapore, supply, technology, online safety, health, food, climate and future ideas. A wide search is useful, but the main page must still put the most important news first."
              ],
              "removed": [
                "The 73-engine release holds 584 source-linked rows. The lead cluster is now easy to see: a reported Iran strike pause, oil weakness linked to talks optimism, another OPEC+ supply increase and confirmed joint action to support the yen.",
                "The wider feed spans 566 direct URLs across 384 domains, covering local, supply, technology, cyber, health, food, climate and future-system lanes. That breadth is useful for search and follow-up, but the editorial must still rank material impact instead of treating every row as equal."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "World events and markets lead",
                "Oil did not fall for one reason",
                "Other useful topics remain available"
              ],
              "removed_titles": [
                "Geopolitics and markets form the lead cluster",
                "Supply policy matters beside diplomacy",
                "Other lanes remain searchable, not discarded"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 8,
              "current_count": 8,
              "added": [],
              "removed": [],
              "retained": [
                "CLIMATE-CURRENT",
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "HEALTH-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.",
              "current": "The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "News that affects several areas",
                "Reports that disagree",
                "Important news that arrived after this edition closed"
              ],
              "removed": [
                "Lead events that cross several engines",
                "Important contradictions",
                "Post-cut evidence that deserves a labelled update"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.",
              "current": "Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result."
            }
          },
          "similarities": [
            "Both records belong to the Everything canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
            "Headline changed from \"584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.\" to \"584 current signals give a wide view, while the main story leads with the news that matters most.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added World events and markets lead, Oil did not fall for one reason, Other useful topics remain available; removed Geopolitics and markets form the lead cluster, Supply policy matters beside diplomacy, Other lanes remain searchable, not discarded.",
            "Market connection changed from \"Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.\" to \"The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.\" to \"Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.\"."
          ],
          "comparison": "The Everything tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\".",
          "difference": "Question changed from \"What does the complete release add beyond the main story?\" to \"What else did today's full search find?\". Headline changed from \"584 current signals provide breadth; the main story now promotes the highest-impact verified cluster.\" to \"584 current signals give a wide view, while the main story leads with the news that matters most.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added World events and markets lead, Oil did not fall for one reason, Other useful topics remain available; removed Geopolitics and markets form the lead cluster, Supply policy matters beside diplomacy, Other lanes remain searchable, not discarded. Market connection changed from \"Coverage answers what exists; editorial ranking answers what deserves attention first. Both are needed for a useful intelligence product.\" to \"The full search shows what OTR found. The main story shows what deserves attention first. A useful service needs both.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"The map changes when stronger current evidence overtakes a lead event or when a correction breaks the link between the event and its stated consequence.\" to \"Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Everything",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 13,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "5c881cf105eaeb7a196e9ff199fe8a136ee9d86e89465cefafeaadf32a379efc",
          "comparison_receipt_sha256": "61ada41a9546788812442d1e709733dedcc8a91cfd09ccee2df07127e1595775",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "News that affects several areas",
        "Reports that disagree",
        "Important news that arrived after this edition closed"
      ],
      "invalidation": "Change the order when stronger current proof matters more, or when a correction breaks the link between an event and its result.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Worry": {
      "eyebrow": "WORRY · 3 AUGUST 2026",
      "question": "What could make today's relief story fail?",
      "headline": "The main risks are a short pause, an oil price rebound and support for the yen that does not last.",
      "narrative": [
        "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest case against today's hopeful view is simple: a pause can end without a lasting deal. If strikes return, oil may rise and investors may move back to safer assets.",
        "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both turn back after their first move. The first response matters, but what lasts matters more for budgets and business choices."
      ],
      "beats": [
        {
          "label": "PAUSE MAY END",
          "title": "The strike pause may not become a peace deal",
          "body": "Treat the pause as a short-term change, not proof that the danger has ended.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "OIL CAN TURN",
          "title": "Oil moves for more than one reason",
          "body": "A later rise in oil would not by itself prove that talks failed. Supply and demand can also pull prices in different ways.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "YEN SUPPORT MAY FADE",
          "title": "Government action may not control the market",
          "body": "The joint action can stop one-sided bets for a while, but later moves still depend on more action and wider market choices.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.",
      "history_echo": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\". This is background only. It compares the nearest earlier saved Worry section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Worry",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Worry",
          "question": "What could make today's relief story fail?",
          "headline": "The main risks are a short pause, an oil price rebound and support for the yen that does not last.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest case against today's hopeful view is simple: a pause can end without a lasting deal. If strikes return, oil may rise and investors may move back to safer assets.",
            "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both turn back after their first move. The first response matters, but what lasts matters more for budgets and business choices."
          ],
          "beats": [
            {
              "label": "PAUSE MAY END",
              "title": "The strike pause may not become a peace deal",
              "body": "Treat the pause as a short-term change, not proof that the danger has ended.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "OIL CAN TURN",
              "title": "Oil moves for more than one reason",
              "body": "A later rise in oil would not by itself prove that talks failed. Supply and demand can also pull prices in different ways.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "YEN SUPPORT MAY FADE",
              "title": "Government action may not control the market",
              "body": "The joint action can stop one-sided bets for a while, but later moves still depend on more action and wider market choices.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.",
          "watch_conditions": [
            "Renewed military action",
            "A sharp rise in oil",
            "Yen weakness after joint government action"
          ],
          "invalidation": "These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.",
          "content_sha256": "fdc7bcf214358daa43a6640a9e03c33ed847a5aaf206335823ba7b035390826c",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Worry",
          "question": "What could make today's relief story fail?",
          "headline": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest opposing case is simple: a pause can end without producing a durable agreement. If military action returns, oil's conflict premium and demand for defensive positioning can return quickly.",
            "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both reverse after an initial policy shock. The first move matters, but persistence matters more for budgets, hedges and decisions made after the headline."
          ],
          "beats": [
            {
              "label": "REVERSAL",
              "title": "The strike pause may not become a settlement",
              "body": "Treat the pause as a change in near-term risk, not proof that the conflict path has ended.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "FALSE SIMPLICITY",
              "title": "Oil has more than one driver",
              "body": "A later oil rebound would not by itself disprove diplomacy; supply decisions, positioning and demand can pull in different directions.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "INTERVENTION LIMIT",
              "title": "Official yen support may not dominate private flows",
              "body": "The action can punish one-way positioning, but lasting direction still depends on policy follow-through and market participation.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
          "watch_conditions": [
            "Renewed military action",
            "A sharp reversal in oil",
            "Yen weakness after intervention"
          ],
          "invalidation": "The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.",
          "content_sha256": "ac6a59ebaaceb3383028971cff8346bd7b95a6a3d6fbf0c11445078771fa360a",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
        "content_changes": {
          "changed_fields": [
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "question",
            "source_ids"
          ],
          "question": {
            "changed": false,
            "prior": "What could make today's relief story fail?",
            "current": "What could make today's relief story fail?"
          },
          "headline": {
            "changed": true,
            "prior": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
            "current": "The main risks are a short pause, an oil price rebound and support for the yen that does not last."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest case against today's hopeful view is simple: a pause can end without a lasting deal. If strikes return, oil may rise and investors may move back to safer assets.",
              "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both turn back after their first move. The first response matters, but what lasts matters more for budgets and business choices."
            ],
            "removed": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest opposing case is simple: a pause can end without producing a durable agreement. If military action returns, oil's conflict premium and demand for defensive positioning can return quickly.",
              "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both reverse after an initial policy shock. The first move matters, but persistence matters more for budgets, hedges and decisions made after the headline."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "The strike pause may not become a peace deal",
              "Oil moves for more than one reason",
              "Government action may not control the market"
            ],
            "removed_titles": [
              "The strike pause may not become a settlement",
              "Oil has more than one driver",
              "Official yen support may not dominate private flows"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
            "current": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "A sharp rise in oil",
              "Yen weakness after joint government action"
            ],
            "removed": [
              "A sharp reversal in oil",
              "Yen weakness after intervention"
            ],
            "retained": [
              "Renewed military action"
            ],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.",
            "current": "These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains."
          }
        },
        "similarities": [
          "Both records belong to the Worry canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved question is unchanged.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added The strike pause may not become a peace deal, Oil moves for more than one reason, Government action may not control the market; removed The strike pause may not become a settlement, Oil has more than one driver, Official yen support may not dominate private flows.",
          "Market connection changed from \"The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.\" to \"The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.\".",
          "Watch conditions changed: 2 added; 2 removed.",
          "Invalidation condition changed from \"The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.\" to \"These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Worry",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "d830ca8f090ee39c126a0d3d525eecee8bfbf16d3a285757c91939df50fe9527",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "3545db42283cf982df1ddf1d991e8a72787503107edee8ff16d1dba8d64533d1"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-WORRY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-WORRY",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Worry",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Worry",
          "source_headline": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
          "source_question": "What could make today's relief story fail?",
          "source_market_connection": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "ac6a59ebaaceb3383028971cff8346bd7b95a6a3d6fbf0c11445078771fa360a",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Worry",
          "current_headline": "The main risks are a short pause, an oil price rebound and support for the yen that does not last.",
          "current_question": "What could make today's relief story fail?",
          "current_market_connection": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "fdc7bcf214358daa43a6640a9e03c33ed847a5aaf206335823ba7b035390826c",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What could make today's relief story fail?",
              "current": "What could make today's relief story fail?"
            },
            "headline": {
              "changed": true,
              "prior": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
              "current": "The main risks are a short pause, an oil price rebound and support for the yen that does not last."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest case against today's hopeful view is simple: a pause can end without a lasting deal. If strikes return, oil may rise and investors may move back to safer assets.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both turn back after their first move. The first response matters, but what lasts matters more for budgets and business choices."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest opposing case is simple: a pause can end without producing a durable agreement. If military action returns, oil's conflict premium and demand for defensive positioning can return quickly.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both reverse after an initial policy shock. The first move matters, but persistence matters more for budgets, hedges and decisions made after the headline."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "The strike pause may not become a peace deal",
                "Oil moves for more than one reason",
                "Government action may not control the market"
              ],
              "removed_titles": [
                "The strike pause may not become a settlement",
                "Oil has more than one driver",
                "Official yen support may not dominate private flows"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
              "current": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "A sharp rise in oil",
                "Yen weakness after joint government action"
              ],
              "removed": [
                "A sharp reversal in oil",
                "Yen weakness after intervention"
              ],
              "retained": [
                "Renewed military action"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.",
              "current": "These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains."
            }
          },
          "similarities": [
            "Both records belong to the Worry canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added The strike pause may not become a peace deal, Oil moves for more than one reason, Government action may not control the market; removed The strike pause may not become a settlement, Oil has more than one driver, Official yen support may not dominate private flows.",
            "Market connection changed from \"The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.\" to \"The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.\".",
            "Watch conditions changed: 2 added; 2 removed.",
            "Invalidation condition changed from \"The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.\" to \"These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.\"."
          ],
          "comparison": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
          "difference": "Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added The strike pause may not become a peace deal, Oil moves for more than one reason, Government action may not control the market; removed The strike pause may not become a settlement, Oil has more than one driver, Official yen support may not dominate private flows. Market connection changed from \"The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.\" to \"The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.\". Watch conditions changed: 2 added; 2 removed. Invalidation condition changed from \"The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.\" to \"These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Worry",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "d830ca8f090ee39c126a0d3d525eecee8bfbf16d3a285757c91939df50fe9527",
          "comparison_receipt_sha256": "3545db42283cf982df1ddf1d991e8a72787503107edee8ff16d1dba8d64533d1",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "5269570b6dcf90b8f40f5f0bb83d019587dd770e730d6bcb83e24d1ac88b64ce",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "the",
            "main",
            "risks",
            "are",
            "short",
            "pause",
            "oil",
            "price",
            "rebound",
            "and",
            "support",
            "for",
            "yen",
            "not",
            "last",
            "danger",
            "new",
            "shock",
            "treating",
            "first",
            "market",
            "move",
            "proof",
            "lasting",
            "change",
            "today",
            "com",
            "trump",
            "calls",
            "military",
            "strikes",
            "iran",
            "strongest",
            "case",
            "hopeful",
            "view",
            "simple",
            "can",
            "end",
            "without",
            "deal",
            "return",
            "may",
            "rise",
            "investors",
            "back",
            "safer",
            "assets",
            "bloomberg",
            "slumps",
            "futures",
            "talks",
            "optimism",
            "markets",
            "wrap",
            "finance",
            "yahoo",
            "japan",
            "confirms",
            "joint",
            "intervention",
            "readiness",
            "action",
            "turn",
            "response",
            "matters",
            "but",
            "lasts",
            "budgets",
            "business",
            "choices",
            "renewed",
            "sharp",
            "weakness",
            "government"
          ],
          "direction": "UP"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 273.3253,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, today, oil, and, proof"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 270.8286,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, oil, intervention, proof, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 253.8731,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, and, proof, the, market"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 253.8731,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, and, proof, the, market"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 253.8731,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, and, proof, the, market"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "36746bc1523306a7b58e4424903bd52505dd9030be5c08be103497e292e90595"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-WORRY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-WORRY",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Worry",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Worry",
          "source_headline": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
          "source_question": "What could make today's relief story fail?",
          "source_market_connection": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "ac6a59ebaaceb3383028971cff8346bd7b95a6a3d6fbf0c11445078771fa360a",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Worry",
          "current_headline": "The main risks are a short pause, an oil price rebound and support for the yen that does not last.",
          "current_question": "What could make today's relief story fail?",
          "current_market_connection": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "fdc7bcf214358daa43a6640a9e03c33ed847a5aaf206335823ba7b035390826c",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What could make today's relief story fail?",
              "current": "What could make today's relief story fail?"
            },
            "headline": {
              "changed": true,
              "prior": "A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.",
              "current": "The main risks are a short pause, an oil price rebound and support for the yen that does not last."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest case against today's hopeful view is simple: a pause can end without a lasting deal. If strikes return, oil may rise and investors may move back to safer assets.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both turn back after their first move. The first response matters, but what lasts matters more for budgets and business choices."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” The strongest opposing case is simple: a pause can end without producing a durable agreement. If military action returns, oil's conflict premium and demand for defensive positioning can return quickly.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” Oil and the yen may both reverse after an initial policy shock. The first move matters, but persistence matters more for budgets, hedges and decisions made after the headline."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "The strike pause may not become a peace deal",
                "Oil moves for more than one reason",
                "Government action may not control the market"
              ],
              "removed_titles": [
                "The strike pause may not become a settlement",
                "Oil has more than one driver",
                "Official yen support may not dominate private flows"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.",
              "current": "The danger is not only a new shock. It is also treating the first market move as proof of a lasting change."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "A sharp rise in oil",
                "Yen weakness after joint government action"
              ],
              "removed": [
                "A sharp reversal in oil",
                "Yen weakness after intervention"
              ],
              "retained": [
                "Renewed military action"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.",
              "current": "These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains."
            }
          },
          "similarities": [
            "Both records belong to the Worry canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added The strike pause may not become a peace deal, Oil moves for more than one reason, Government action may not control the market; removed The strike pause may not become a settlement, Oil has more than one driver, Official yen support may not dominate private flows.",
            "Market connection changed from \"The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.\" to \"The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.\".",
            "Watch conditions changed: 2 added; 2 removed.",
            "Invalidation condition changed from \"The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.\" to \"These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.\"."
          ],
          "comparison": "The Worry tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\".",
          "difference": "Headline changed from \"A temporary pause, a reversible oil move and a short-lived currency intervention are the main risks.\" to \"The main risks are a short pause, an oil price rebound and support for the yen that does not last.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added The strike pause may not become a peace deal, Oil moves for more than one reason, Government action may not control the market; removed The strike pause may not become a settlement, Oil has more than one driver, Official yen support may not dominate private flows. Market connection changed from \"The danger is not only a new shock. It is also acting as if a first market response has already proved a lasting regime change.\" to \"The danger is not only a new shock. It is also treating the first market move as proof of a lasting change.\". Watch conditions changed: 2 added; 2 removed. Invalidation condition changed from \"The worry case weakens if the pause holds, oil stabilises for several observations and official yen support produces a durable change in positioning.\" to \"These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Worry",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "d830ca8f090ee39c126a0d3d525eecee8bfbf16d3a285757c91939df50fe9527",
          "comparison_receipt_sha256": "3545db42283cf982df1ddf1d991e8a72787503107edee8ff16d1dba8d64533d1",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Renewed military action",
        "A sharp rise in oil",
        "Yen weakness after joint government action"
      ],
      "invalidation": "These worries become weaker if the pause holds, oil stays steady through several checks, and the yen keeps its gains.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Big 3": {
      "eyebrow": "BIG 3 · 3 AUGUST 2026",
      "question": "Which three developments matter most in this edition?",
      "headline": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.",
      "narrative": [
        "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These reports belong together because the change in planned strikes was followed by a clear market move before 09:54 SGT. Both can still reverse.",
        "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate government move, and the OPEC+ decision is another reason for lower oil. The Big Three connect the day's main risks without claiming that one event caused everything."
      ],
      "beats": [
        {
          "label": "01 · IRAN",
          "title": "A reported pause lowered immediate conflict risk",
          "body": "The short-term danger changed. The main doubt is whether the pause will last long enough to support real talks.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "02 · OIL",
          "title": "Oil showed the fastest wider result",
          "body": "Hopes for talks and an OPEC+ supply increase both pointed towards lower oil, so one headline cannot explain the whole move.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "03 · YEN",
          "title": "The US and Japan acted together on the yen",
          "body": "Their joint action made one-sided bets against the yen more risky and may affect money choices across the region.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.",
      "history_echo": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\". This is background only. It compares the nearest earlier saved Big 3 section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Big 3",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Big 3",
          "question": "Which three developments matter most in this edition?",
          "headline": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These reports belong together because the change in planned strikes was followed by a clear market move before 09:54 SGT. Both can still reverse.",
            "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate government move, and the OPEC+ decision is another reason for lower oil. The Big Three connect the day's main risks without claiming that one event caused everything."
          ],
          "beats": [
            {
              "label": "01 · IRAN",
              "title": "A reported pause lowered immediate conflict risk",
              "body": "The short-term danger changed. The main doubt is whether the pause will last long enough to support real talks.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "02 · OIL",
              "title": "Oil showed the fastest wider result",
              "body": "Hopes for talks and an OPEC+ supply increase both pointed towards lower oil, so one headline cannot explain the whole move.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "03 · YEN",
              "title": "The US and Japan acted together on the yen",
              "body": "Their joint action made one-sided bets against the yen more risky and may affect money choices across the region.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.",
          "watch_conditions": [
            "Whether the strike pause lasts",
            "Oil after both downward forces",
            "Whether support for the yen lasts"
          ],
          "invalidation": "Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.",
          "content_sha256": "e082837fe3c677c3c23e3a07b652dbe833f984abbdc424324d7a4cf24444e990",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Big 3",
          "question": "Which three current developments best organise this edition?",
          "headline": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These two records belong together because the reported diplomatic change had a visible market channel before the cut, while still leaving room for reversal.",
            "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate policy shock, and the OPEC+ decision is a separate oil driver. The Big Three therefore describe one connected risk cluster without forcing every move into one cause."
          ],
          "beats": [
            {
              "label": "01 · IRAN",
              "title": "A reported pause altered immediate conflict risk",
              "body": "The decision value is the change in near-term conditions. The opposing case is that the pause ends before it becomes a stable diplomatic path.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "02 · OIL",
              "title": "Oil carried the fastest cross-market consequence",
              "body": "Talks optimism and an OPEC+ supply increase pointed in the same direction, so the move needs two-cause analysis rather than one headline explanation.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "03 · YEN",
              "title": "The US and Japan acted together in currency markets",
              "body": "Joint intervention raises immediate risk for one-way yen positions and may affect hedging and funding choices across the region.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
          "watch_conditions": [
            "Durability of the strike pause",
            "Oil direction after both drivers",
            "Follow-through after joint yen action"
          ],
          "invalidation": "A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.",
          "content_sha256": "e60d6f16f07041ce058323e8ef85002d9dececb90a4c7ae1ff161ba0328c4271",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "Which three current developments best organise this edition?",
            "current": "Which three developments matter most in this edition?"
          },
          "headline": {
            "changed": true,
            "prior": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
            "current": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These reports belong together because the change in planned strikes was followed by a clear market move before 09:54 SGT. Both can still reverse.",
              "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate government move, and the OPEC+ decision is another reason for lower oil. The Big Three connect the day's main risks without claiming that one event caused everything."
            ],
            "removed": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These two records belong together because the reported diplomatic change had a visible market channel before the cut, while still leaving room for reversal.",
              "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate policy shock, and the OPEC+ decision is a separate oil driver. The Big Three therefore describe one connected risk cluster without forcing every move into one cause."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "A reported pause lowered immediate conflict risk",
              "Oil showed the fastest wider result",
              "The US and Japan acted together on the yen"
            ],
            "removed_titles": [
              "A reported pause altered immediate conflict risk",
              "Oil carried the fastest cross-market consequence",
              "The US and Japan acted together in currency markets"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
            "current": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Whether the strike pause lasts",
              "Oil after both downward forces",
              "Whether support for the yen lasts"
            ],
            "removed": [
              "Durability of the strike pause",
              "Oil direction after both drivers",
              "Follow-through after joint yen action"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.",
            "current": "Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more."
          }
        },
        "similarities": [
          "Both records belong to the Big 3 canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
          "Headline changed from \"The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.\" to \"The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added A reported pause lowered immediate conflict risk, Oil showed the fastest wider result, The US and Japan acted together on the yen; removed A reported pause altered immediate conflict risk, Oil carried the fastest cross-market consequence, The US and Japan acted together in currency markets.",
          "Market connection changed from \"The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.\" to \"The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.\" to \"Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Big 3",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "133dccde9b83016d5c484981a5e085a2d183bc4e15e41df38de079070389d54c",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "b5146e9eda159fda09e1d89a372ccb111beb46f150c447a773cec588ec74561c"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-BIG-3",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-BIG-3",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Big 3",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Big 3",
          "source_headline": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
          "source_question": "Which three current developments best organise this edition?",
          "source_market_connection": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "e60d6f16f07041ce058323e8ef85002d9dececb90a4c7ae1ff161ba0328c4271",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Big 3",
          "current_headline": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.",
          "current_question": "Which three developments matter most in this edition?",
          "current_market_connection": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "e082837fe3c677c3c23e3a07b652dbe833f984abbdc424324d7a4cf24444e990",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which three current developments best organise this edition?",
              "current": "Which three developments matter most in this edition?"
            },
            "headline": {
              "changed": true,
              "prior": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
              "current": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These reports belong together because the change in planned strikes was followed by a clear market move before 09:54 SGT. Both can still reverse.",
                "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate government move, and the OPEC+ decision is another reason for lower oil. The Big Three connect the day's main risks without claiming that one event caused everything."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These two records belong together because the reported diplomatic change had a visible market channel before the cut, while still leaving room for reversal.",
                "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate policy shock, and the OPEC+ decision is a separate oil driver. The Big Three therefore describe one connected risk cluster without forcing every move into one cause."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A reported pause lowered immediate conflict risk",
                "Oil showed the fastest wider result",
                "The US and Japan acted together on the yen"
              ],
              "removed_titles": [
                "A reported pause altered immediate conflict risk",
                "Oil carried the fastest cross-market consequence",
                "The US and Japan acted together in currency markets"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
              "current": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Whether the strike pause lasts",
                "Oil after both downward forces",
                "Whether support for the yen lasts"
              ],
              "removed": [
                "Durability of the strike pause",
                "Oil direction after both drivers",
                "Follow-through after joint yen action"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.",
              "current": "Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more."
            }
          },
          "similarities": [
            "Both records belong to the Big 3 canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
            "Headline changed from \"The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.\" to \"The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A reported pause lowered immediate conflict risk, Oil showed the fastest wider result, The US and Japan acted together on the yen; removed A reported pause altered immediate conflict risk, Oil carried the fastest cross-market consequence, The US and Japan acted together in currency markets.",
            "Market connection changed from \"The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.\" to \"The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.\" to \"Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.\"."
          ],
          "comparison": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
          "difference": "Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\". Headline changed from \"The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.\" to \"The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A reported pause lowered immediate conflict risk, Oil showed the fastest wider result, The US and Japan acted together on the yen; removed A reported pause altered immediate conflict risk, Oil carried the fastest cross-market consequence, The US and Japan acted together in currency markets. Market connection changed from \"The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.\" to \"The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.\" to \"Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Big 3",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "133dccde9b83016d5c484981a5e085a2d183bc4e15e41df38de079070389d54c",
          "comparison_receipt_sha256": "b5146e9eda159fda09e1d89a372ccb111beb46f150c447a773cec588ec74561c",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "43e7953ade53cf6b473d1f85b798dca7511f6cd6cb0995fd2780aee15cc4723e",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "the",
            "pause",
            "planned",
            "iran",
            "strikes",
            "fall",
            "oil",
            "and",
            "joint",
            "action",
            "yen",
            "are",
            "today",
            "big",
            "three",
            "order",
            "based",
            "impact",
            "urgency",
            "effects",
            "across",
            "markets",
            "clear",
            "proof",
            "ranks",
            "edition",
            "not",
            "claim",
            "rank",
            "every",
            "event",
            "world",
            "com",
            "trump",
            "calls",
            "for",
            "military",
            "bloomberg",
            "slumps",
            "futures",
            "rise",
            "talks",
            "optimism",
            "wrap",
            "belong",
            "together",
            "change",
            "was",
            "followed",
            "market",
            "move",
            "sgt",
            "can",
            "still",
            "reverse",
            "finance",
            "yahoo",
            "japan",
            "confirms",
            "intervention",
            "readiness",
            "benzinga",
            "crude",
            "price",
            "dives",
            "opec",
            "agrees",
            "supply",
            "hike",
            "separate",
            "government",
            "decision",
            "reason",
            "lower",
            "connect",
            "day",
            "main",
            "risks",
            "without",
            "claiming",
            "one",
            "caused",
            "everything",
            "whether",
            "strike",
            "lasts",
            "downward",
            "forces",
            "support"
          ],
          "direction": "MIXED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-04-BIG-3"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT"
        ],
        "direction_counts": {
          "UP": 1,
          "DOWN": 3,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": true,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 469.9383,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: big, yen, sgt, three, oil"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 365.4297,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: sgt, yen, today, oil, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
            "date": "2026-08-02",
            "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "DOWN",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 291.7032,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: big, three, sgt, today, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
            "date": "2026-08-02",
            "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "DOWN",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 291.7032,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: big, three, sgt, today, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
            "date": "2026-08-02",
            "title": "A public rule, a freight measure and a clinical null result are the 2 August Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "DOWN",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 291.7032,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: big, three, sgt, today, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "7b1f7723ee9ba2c05ce5666e7b5488b759c86bc9bc0fe1adab65659230927246"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-BIG-3",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-BIG-3",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Big 3",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Big 3",
          "source_headline": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
          "source_question": "Which three current developments best organise this edition?",
          "source_market_connection": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "e60d6f16f07041ce058323e8ef85002d9dececb90a4c7ae1ff161ba0328c4271",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Big 3",
          "current_headline": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.",
          "current_question": "Which three developments matter most in this edition?",
          "current_market_connection": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "e082837fe3c677c3c23e3a07b652dbe833f984abbdc424324d7a4cf24444e990",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which three current developments best organise this edition?",
              "current": "Which three developments matter most in this edition?"
            },
            "headline": {
              "changed": true,
              "prior": "The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.",
              "current": "The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These reports belong together because the change in planned strikes was followed by a clear market move before 09:54 SGT. Both can still reverse.",
                "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate government move, and the OPEC+ decision is another reason for lower oil. The Big Three connect the day's main risks without claiming that one event caused everything."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” These two records belong together because the reported diplomatic change had a visible market channel before the cut, while still leaving room for reversal.",
                "finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The yen action is a separate policy shock, and the OPEC+ decision is a separate oil driver. The Big Three therefore describe one connected risk cluster without forcing every move into one cause."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A reported pause lowered immediate conflict risk",
                "Oil showed the fastest wider result",
                "The US and Japan acted together on the yen"
              ],
              "removed_titles": [
                "A reported pause altered immediate conflict risk",
                "Oil carried the fastest cross-market consequence",
                "The US and Japan acted together in currency markets"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.",
              "current": "The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Whether the strike pause lasts",
                "Oil after both downward forces",
                "Whether support for the yen lasts"
              ],
              "removed": [
                "Durability of the strike pause",
                "Oil direction after both drivers",
                "Follow-through after joint yen action"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.",
              "current": "Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more."
            }
          },
          "similarities": [
            "Both records belong to the Big 3 canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
            "Headline changed from \"The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.\" to \"The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A reported pause lowered immediate conflict risk, Oil showed the fastest wider result, The US and Japan acted together on the yen; removed A reported pause altered immediate conflict risk, Oil carried the fastest cross-market consequence, The US and Japan acted together in currency markets.",
            "Market connection changed from \"The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.\" to \"The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.\" to \"Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.\"."
          ],
          "comparison": "The Big 3 tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\".",
          "difference": "Question changed from \"Which three current developments best organise this edition?\" to \"Which three developments matter most in this edition?\". Headline changed from \"The Iran strike pause, oil repricing and joint yen intervention are today's Big Three.\" to \"The pause in planned Iran strikes, the fall in oil and joint action on the yen are today's Big Three.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A reported pause lowered immediate conflict risk, Oil showed the fastest wider result, The US and Japan acted together on the yen; removed A reported pause altered immediate conflict risk, Oil carried the fastest cross-market consequence, The US and Japan acted together in currency markets. Market connection changed from \"The order reflects material impact, urgency, cross-market reach and a direct evidence path. It is an editorial ranking inside this release, not a claim about all events in the world.\" to \"The order is based on impact, urgency, effects across markets and clear proof. It ranks this edition only; it does not claim to rank every event in the world.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"A pick falls when its source is corrected, its market channel disappears or a stronger verified event becomes more useful for current decisions.\" to \"Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Big 3",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "133dccde9b83016d5c484981a5e085a2d183bc4e15e41df38de079070389d54c",
          "comparison_receipt_sha256": "b5146e9eda159fda09e1d89a372ccb111beb46f150c447a773cec588ec74561c",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Whether the strike pause lasts",
        "Oil after both downward forces",
        "Whether support for the yen lasts"
      ],
      "invalidation": "Remove a pick if its source is corrected, its expected market effect disappears, or stronger proven news matters more.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      },
      "selection_receipt": {
        "locked_at_sgt": "2026-08-03T15:45:45+08:00",
        "candidate_event_count": 564,
        "candidate_count_boundary": "This count comes from saved event groups. Some groups may describe the same real-world event.",
        "method_label": "EDITORIAL_SELECTION_NOT_OBJECTIVE_GLOBAL_IMPORTANCE",
        "criteria": [
          "Impact",
          "Urgency",
          "Reach across markets",
          "Current direct proof",
          "Other possible cause",
          "What would change the view"
        ],
        "selections": [
          {
            "rank": 1,
            "lane": "Iran strike pause",
            "primary_source_id": "WORLD-CURRENT",
            "primary_signal_id": "OTR-20260803-036-05",
            "context_source_ids": [
              "MARKET-CURRENT"
            ],
            "context_signal_ids": [
              "OTR-20260803-072-07"
            ],
            "why_selected": "The reported pause can quickly lower fears of a wider war, and oil prices give us a clear result to watch.",
            "evidence_limit": "This comes from one named report. It does not prove every cause or what happened later.",
            "what_can_overtake": "A stronger official report, more independent proof, or a correction that matters more.",
            "evidence_state": "SOURCE_LINKED_CURRENT",
            "source_independence": "ONE_PUBLISHER_REPORT"
          },
          {
            "rank": 2,
            "lane": "Oil repricing",
            "primary_source_id": "MARKET-CURRENT",
            "primary_signal_id": "OTR-20260803-072-07",
            "context_source_ids": [
              "ENERGY-CURRENT",
              "WORLD-CURRENT"
            ],
            "context_signal_ids": [
              "OTR-20260803-072-01",
              "OTR-20260803-036-05"
            ],
            "why_selected": "Oil fell as hopes for Iran talks rose, while an OPEC+ supply increase gave prices another reason to fall.",
            "evidence_limit": "This comes from one named report. It does not prove every cause or what happened later.",
            "what_can_overtake": "A stronger official report, more independent proof, or a correction that matters more.",
            "evidence_state": "SOURCE_LINKED_CURRENT",
            "source_independence": "ONE_PUBLISHER_REPORT"
          },
          {
            "rank": 3,
            "lane": "Joint yen action",
            "primary_source_id": "FINANCE-CURRENT",
            "primary_signal_id": "OTR-20260803-021-10",
            "context_source_ids": [
              "MARKET-CURRENT"
            ],
            "context_signal_ids": [
              "OTR-20260803-072-07"
            ],
            "why_selected": "Confirmed action by the US and Japan to support the yen can quickly change currency and regional market choices.",
            "evidence_limit": "This comes from one named report. It does not prove every cause or what happened later.",
            "what_can_overtake": "A stronger official report, more independent proof, or a correction that matters more.",
            "evidence_state": "SOURCE_LINKED_CURRENT",
            "source_independence": "ONE_PUBLISHER_REPORT"
          }
        ],
        "shared_cause_claimed": false,
        "connection_type": "CURRENT_RISK_CLUSTER_WITH_SEPARATE_CAUSES",
        "statement": "These are the three proven developments in this edition that may help readers make the clearest decisions. They do not prove that one cause explains every market move."
      }
    },
    "Predictions": {
      "eyebrow": "PREDICTIONS · 3 AUGUST 2026",
      "question": "What do the prediction cards know, and what is still unproved?",
      "headline": "32 research predictions have clear rules, but none has a final result yet.",
      "narrative": [
        "Every card keeps the same starting price range, goal, safety limit, time period and named price source. These fixed rules make fair checking possible later, but detailed numbers do not prove that a prediction is right.",
        "All 32 predictions are still waiting for valid price checks, while 0 other ideas were not published as predictions. Judge the results only after enough cards have won, lost, missed their start price or lacked enough proof under similar conditions."
      ],
      "beats": [
        {
          "label": "WHY NOW",
          "title": "Today's reports set the starting point",
          "body": "Oil, US share prices and yen reports can shape a test, but they cannot promise direction or timing.",
          "source_ids": [
            "MARKET-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "WHAT STAYS FIXED",
          "title": "The starting range and ending rules cannot move",
          "body": "Later checks must use the original market, time period and price source, so a miss cannot be changed into a win.",
          "source_ids": [
            "ENERGY-CURRENT",
            "TECH-CURRENT"
          ]
        },
        {
          "label": "WHAT WE DO NOT KNOW",
          "title": "There are not enough results yet",
          "body": "Pending cards show no success rate. Trust should grow only after enough similar results have been checked.",
          "source_ids": [
            "WORLD-CURRENT",
            "HEALTH-CURRENT"
          ]
        }
      ],
      "market_connection": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.",
      "history_echo": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\". This is background only. It compares the nearest earlier saved Predictions section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Predictions",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Predictions",
          "question": "What do the prediction cards know, and what is still unproved?",
          "headline": "32 research predictions have clear rules, but none has a final result yet.",
          "narrative": [
            "Every card keeps the same starting price range, goal, safety limit, time period and named price source. These fixed rules make fair checking possible later, but detailed numbers do not prove that a prediction is right.",
            "All 32 predictions are still waiting for valid price checks, while 0 other ideas were not published as predictions. Judge the results only after enough cards have won, lost, missed their start price or lacked enough proof under similar conditions."
          ],
          "beats": [
            {
              "label": "WHY NOW",
              "title": "Today's reports set the starting point",
              "body": "Oil, US share prices and yen reports can shape a test, but they cannot promise direction or timing.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "WHAT STAYS FIXED",
              "title": "The starting range and ending rules cannot move",
              "body": "Later checks must use the original market, time period and price source, so a miss cannot be changed into a win.",
              "source_ids": [
                "ENERGY-CURRENT",
                "TECH-CURRENT"
              ]
            },
            {
              "label": "WHAT WE DO NOT KNOW",
              "title": "There are not enough results yet",
              "body": "Pending cards show no success rate. Trust should grow only after enough similar results have been checked.",
              "source_ids": [
                "HEALTH-CURRENT",
                "WORLD-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "HEALTH-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.",
          "watch_conditions": [
            "Valid completed-price checks",
            "A larger group of similar results",
            "Result quality by topic and market condition"
          ],
          "invalidation": "Do not count a result when its starting report, fixed rule, time or approved price source is missing.",
          "content_sha256": "9eb86eb1ab1c55610c44bc66834f4472fbbcd690c1e939b30d22054bbfdc1ce8",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Predictions",
          "question": "What do the prediction cards know, and what is still unproved?",
          "headline": "32 research plans are precisely defined but still pending evidence.",
          "narrative": [
            "Every card is bound to OTR-DAILY-73-2026-08-03-0954-SGT, with a fixed reference price, entry band, target, safety exit, time window and resolver. The shared formula makes later comparison possible, but numerical precision is a research design and not proof that the forecast is right.",
            "All 32 plans remain waiting for eligible observations, while 0 recognised mentions remain outside promotion. Readers should judge the system only after enough PASS, FAIL, NO ENTRY and UNVERIFIABLE results exist across comparable conditions."
          ],
          "beats": [
            {
              "label": "WHY NOW",
              "title": "The release supplies the starting evidence",
              "body": "Oil, futures and yen records can shape a test, but they do not guarantee direction or timing.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "WHAT IS FIXED",
              "title": "Bands and exits cannot move after the lock",
              "body": "A later observation must use the original venue, window and resolver so a miss cannot be redesigned as a success.",
              "source_ids": [
                "ENERGY-CURRENT",
                "TECH-CURRENT"
              ]
            },
            {
              "label": "WHAT IS UNKNOWN",
              "title": "Calibration is still incomplete",
              "body": "Pending cards reveal no hit rate. Confidence should grow only after enough comparable outcomes have been resolved.",
              "source_ids": [
                "HEALTH-CURRENT",
                "WORLD-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "HEALTH-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
          "watch_conditions": [
            "Eligible completed-price observations",
            "A growing comparable sample",
            "Outcome quality by engine and market condition"
          ],
          "invalidation": "A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.",
          "content_sha256": "30f7dbc768ae886222f1d401bd1fef06b4c9eb526911019107121a1fc20cd1e6",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
        "content_changes": {
          "changed_fields": [
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "question",
            "source_ids"
          ],
          "question": {
            "changed": false,
            "prior": "What do the prediction cards know, and what is still unproved?",
            "current": "What do the prediction cards know, and what is still unproved?"
          },
          "headline": {
            "changed": true,
            "prior": "32 research plans are precisely defined but still pending evidence.",
            "current": "32 research predictions have clear rules, but none has a final result yet."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "Every card keeps the same starting price range, goal, safety limit, time period and named price source. These fixed rules make fair checking possible later, but detailed numbers do not prove that a prediction is right.",
              "All 32 predictions are still waiting for valid price checks, while 0 other ideas were not published as predictions. Judge the results only after enough cards have won, lost, missed their start price or lacked enough proof under similar conditions."
            ],
            "removed": [
              "Every card is bound to OTR-DAILY-73-2026-08-03-0954-SGT, with a fixed reference price, entry band, target, safety exit, time window and resolver. The shared formula makes later comparison possible, but numerical precision is a research design and not proof that the forecast is right.",
              "All 32 plans remain waiting for eligible observations, while 0 recognised mentions remain outside promotion. Readers should judge the system only after enough PASS, FAIL, NO ENTRY and UNVERIFIABLE results exist across comparable conditions."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "Today's reports set the starting point",
              "The starting range and ending rules cannot move",
              "There are not enough results yet"
            ],
            "removed_titles": [
              "The release supplies the starting evidence",
              "Bands and exits cannot move after the lock",
              "Calibration is still incomplete"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 6,
            "current_count": 6,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "HEALTH-CURRENT",
              "MARKET-CURRENT",
              "TECH-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
            "current": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Valid completed-price checks",
              "A larger group of similar results",
              "Result quality by topic and market condition"
            ],
            "removed": [
              "Eligible completed-price observations",
              "A growing comparable sample",
              "Outcome quality by engine and market condition"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.",
            "current": "Do not count a result when its starting report, fixed rule, time or approved price source is missing."
          }
        },
        "similarities": [
          "Both records belong to the Predictions canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved question is unchanged.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added Today's reports set the starting point, The starting range and ending rules cannot move, There are not enough results yet; removed The release supplies the starting evidence, Bands and exits cannot move after the lock, Calibration is still incomplete.",
          "Market connection changed from \"Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.\" to \"32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.\" to \"Do not count a result when its starting report, fixed rule, time or approved price source is missing.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Predictions",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 21,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "73ddb76211dae45f28bcaba6a1257e93501ac924824824d63b28813b5b7c5a5b",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "81f6db682098b376cb64bda50d31edabeb6a51605442fd9dda54f8ff408baa19"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PREDICTIONS",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PREDICTIONS",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Predictions",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Predictions",
          "source_headline": "32 research plans are precisely defined but still pending evidence.",
          "source_question": "What do the prediction cards know, and what is still unproved?",
          "source_market_connection": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "30f7dbc768ae886222f1d401bd1fef06b4c9eb526911019107121a1fc20cd1e6",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Predictions",
          "current_headline": "32 research predictions have clear rules, but none has a final result yet.",
          "current_question": "What do the prediction cards know, and what is still unproved?",
          "current_market_connection": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "9eb86eb1ab1c55610c44bc66834f4472fbbcd690c1e939b30d22054bbfdc1ce8",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What do the prediction cards know, and what is still unproved?",
              "current": "What do the prediction cards know, and what is still unproved?"
            },
            "headline": {
              "changed": true,
              "prior": "32 research plans are precisely defined but still pending evidence.",
              "current": "32 research predictions have clear rules, but none has a final result yet."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "Every card keeps the same starting price range, goal, safety limit, time period and named price source. These fixed rules make fair checking possible later, but detailed numbers do not prove that a prediction is right.",
                "All 32 predictions are still waiting for valid price checks, while 0 other ideas were not published as predictions. Judge the results only after enough cards have won, lost, missed their start price or lacked enough proof under similar conditions."
              ],
              "removed": [
                "Every card is bound to OTR-DAILY-73-2026-08-03-0954-SGT, with a fixed reference price, entry band, target, safety exit, time window and resolver. The shared formula makes later comparison possible, but numerical precision is a research design and not proof that the forecast is right.",
                "All 32 plans remain waiting for eligible observations, while 0 recognised mentions remain outside promotion. Readers should judge the system only after enough PASS, FAIL, NO ENTRY and UNVERIFIABLE results exist across comparable conditions."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Today's reports set the starting point",
                "The starting range and ending rules cannot move",
                "There are not enough results yet"
              ],
              "removed_titles": [
                "The release supplies the starting evidence",
                "Bands and exits cannot move after the lock",
                "Calibration is still incomplete"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "HEALTH-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
              "current": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Valid completed-price checks",
                "A larger group of similar results",
                "Result quality by topic and market condition"
              ],
              "removed": [
                "Eligible completed-price observations",
                "A growing comparable sample",
                "Outcome quality by engine and market condition"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.",
              "current": "Do not count a result when its starting report, fixed rule, time or approved price source is missing."
            }
          },
          "similarities": [
            "Both records belong to the Predictions canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Today's reports set the starting point, The starting range and ending rules cannot move, There are not enough results yet; removed The release supplies the starting evidence, Bands and exits cannot move after the lock, Calibration is still incomplete.",
            "Market connection changed from \"Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.\" to \"32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.\" to \"Do not count a result when its starting report, fixed rule, time or approved price source is missing.\"."
          ],
          "comparison": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
          "difference": "Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Today's reports set the starting point, The starting range and ending rules cannot move, There are not enough results yet; removed The release supplies the starting evidence, Bands and exits cannot move after the lock, Calibration is still incomplete. Market connection changed from \"Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.\" to \"32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.\" to \"Do not count a result when its starting report, fixed rule, time or approved price source is missing.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Predictions",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 21,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "73ddb76211dae45f28bcaba6a1257e93501ac924824824d63b28813b5b7c5a5b",
          "comparison_receipt_sha256": "81f6db682098b376cb64bda50d31edabeb6a51605442fd9dda54f8ff408baa19",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "a207544e5cf9fe1e471275ad078ad43ab456c3409ab5916bc199e6591b1143b6",
        "query_concepts": {
          "entities": [],
          "events": [],
          "terms": [
            "research",
            "predictions",
            "clear",
            "rules",
            "but",
            "none",
            "has",
            "final",
            "result",
            "yet",
            "are",
            "saved",
            "fixed",
            "publishing",
            "them",
            "not",
            "count",
            "and",
            "later",
            "price",
            "cannot",
            "treated",
            "happened",
            "earlier",
            "every",
            "card",
            "keeps",
            "the",
            "same",
            "starting",
            "range",
            "goal",
            "safety",
            "limit",
            "time",
            "period",
            "named",
            "make",
            "fair",
            "checking",
            "possible",
            "detailed",
            "numbers",
            "prove",
            "prediction",
            "right",
            "all",
            "still",
            "waiting",
            "for",
            "valid",
            "checks",
            "ideas",
            "were",
            "judge",
            "results",
            "enough",
            "cards",
            "won",
            "lost",
            "missed",
            "start",
            "lacked",
            "proof",
            "similar",
            "conditions",
            "completed",
            "larger",
            "group",
            "quality",
            "topic",
            "market",
            "condition"
          ],
          "direction": "UNSTATED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-04-PREDICTIONS",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-05-PREDICTIONS",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT::TAB-04-PREDICTIONS",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-02-EVERYTHING",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-06-LONG-TERM-INVESTMENT"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT"
        ],
        "direction_counts": {
          "UP": 1,
          "DOWN": 0,
          "MIXED": 4,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-04-PREDICTIONS",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "No automatic trade: the edition creates watch conditions.",
            "engine": null,
            "tab": "Predictions",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 192.1741,
            "why": [
              "shared terms: conditions, prediction, predictions, the, not"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-05-PREDICTIONS",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "32 paper plans are locked against today’s release; 31 mentions remain held.",
            "engine": null,
            "tab": "Predictions",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 186.1988,
            "why": [
              "shared terms: predictions, are, prediction, every, market"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT::TAB-04-PREDICTIONS",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
            "date": "2026-07-31",
            "title": "No automatic trade: the edition creates watch conditions.",
            "engine": null,
            "tab": "Predictions",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 145.7802,
            "why": [
              "shared terms: conditions, prediction, valid, completed, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-02-EVERYTHING",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "611 cleared signals now span all 73 active engines.",
            "engine": null,
            "tab": "Everything",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 139.727,
            "why": [
              "shared terms: every, proof, and, all, market"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-06-LONG-TERM-INVESTMENT",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
            "date": "2026-08-02",
            "title": "4 assets clear the first 6-of-10 research threshold; 0 remain held, and none is promised to grow exponentially.",
            "engine": null,
            "tab": "Long-Term Investment",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 138.0287,
            "why": [
              "shared terms: and, research, earlier, price, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "30ed743f33e3c4bdf61b6b944ce740fff9e6c20d5733f6ac423371e5f2efee87"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PREDICTIONS",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PREDICTIONS",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Predictions",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Predictions",
          "source_headline": "32 research plans are precisely defined but still pending evidence.",
          "source_question": "What do the prediction cards know, and what is still unproved?",
          "source_market_connection": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "30f7dbc768ae886222f1d401bd1fef06b4c9eb526911019107121a1fc20cd1e6",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Predictions",
          "current_headline": "32 research predictions have clear rules, but none has a final result yet.",
          "current_question": "What do the prediction cards know, and what is still unproved?",
          "current_market_connection": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "9eb86eb1ab1c55610c44bc66834f4472fbbcd690c1e939b30d22054bbfdc1ce8",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What do the prediction cards know, and what is still unproved?",
              "current": "What do the prediction cards know, and what is still unproved?"
            },
            "headline": {
              "changed": true,
              "prior": "32 research plans are precisely defined but still pending evidence.",
              "current": "32 research predictions have clear rules, but none has a final result yet."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "Every card keeps the same starting price range, goal, safety limit, time period and named price source. These fixed rules make fair checking possible later, but detailed numbers do not prove that a prediction is right.",
                "All 32 predictions are still waiting for valid price checks, while 0 other ideas were not published as predictions. Judge the results only after enough cards have won, lost, missed their start price or lacked enough proof under similar conditions."
              ],
              "removed": [
                "Every card is bound to OTR-DAILY-73-2026-08-03-0954-SGT, with a fixed reference price, entry band, target, safety exit, time window and resolver. The shared formula makes later comparison possible, but numerical precision is a research design and not proof that the forecast is right.",
                "All 32 plans remain waiting for eligible observations, while 0 recognised mentions remain outside promotion. Readers should judge the system only after enough PASS, FAIL, NO ENTRY and UNVERIFIABLE results exist across comparable conditions."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Today's reports set the starting point",
                "The starting range and ending rules cannot move",
                "There are not enough results yet"
              ],
              "removed_titles": [
                "The release supplies the starting evidence",
                "Bands and exits cannot move after the lock",
                "Calibration is still incomplete"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "HEALTH-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.",
              "current": "32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Valid completed-price checks",
                "A larger group of similar results",
                "Result quality by topic and market condition"
              ],
              "removed": [
                "Eligible completed-price observations",
                "A growing comparable sample",
                "Outcome quality by engine and market condition"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.",
              "current": "Do not count a result when its starting report, fixed rule, time or approved price source is missing."
            }
          },
          "similarities": [
            "Both records belong to the Predictions canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Today's reports set the starting point, The starting range and ending rules cannot move, There are not enough results yet; removed The release supplies the starting evidence, Bands and exits cannot move after the lock, Calibration is still incomplete.",
            "Market connection changed from \"Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.\" to \"32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.\" to \"Do not count a result when its starting report, fixed rule, time or approved price source is missing.\"."
          ],
          "comparison": "The Predictions tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\".",
          "difference": "Headline changed from \"32 research plans are precisely defined but still pending evidence.\" to \"32 research predictions have clear rules, but none has a final result yet.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Today's reports set the starting point, The starting range and ending rules cannot move, There are not enough results yet; removed The release supplies the starting evidence, Bands and exits cannot move after the lock, Calibration is still incomplete. Market connection changed from \"Prediction state: 32 locked research plans, zero result implied by publication and no permission to turn a later price into a retroactive entry.\" to \"32 research predictions are saved with fixed rules. Publishing them does not count as a result, and a later price cannot be treated as if it happened earlier.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"A missing parent, current signal, fixed term, eligible timestamp or approved resolver fails the contract closed.\" to \"Do not count a result when its starting report, fixed rule, time or approved price source is missing.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Predictions",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 21,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "73ddb76211dae45f28bcaba6a1257e93501ac924824824d63b28813b5b7c5a5b",
          "comparison_receipt_sha256": "81f6db682098b376cb64bda50d31edabeb6a51605442fd9dda54f8ff408baa19",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Valid completed-price checks",
        "A larger group of similar results",
        "Result quality by topic and market condition"
      ],
      "invalidation": "Do not count a result when its starting report, fixed rule, time or approved price source is missing.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Long-Term Investment": {
      "eyebrow": "LONG-TERM INVESTMENT · THREE-YEAR RESEARCH",
      "question": "Which public investments meet at least six of ten research checks?",
      "headline": "4 investments meet at least six checks; 0 need more proof.",
      "narrative": [
        "Current news can start or speed up a review, but it does not earn any points. Every investment still faces the same ten checks, using official or first-hand proof. Only checks with clear support count.",
        "Six or more supported checks place an investment on the research board. Five or fewer keep it out. Missing or old proof does not count. Each addition or removal is saved as a new dated record."
      ],
      "beats": [
        {
          "label": "CURRENT NEWS",
          "title": "News can start a review but earns no points",
          "body": "A technology or market report may move an investment up the review list without passing any check.",
          "source_ids": [
            "FUTURE-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "TEN CHECKS",
          "title": "Every investment faces the same test",
          "body": "Official records show whether each check is supported, not supported, unclear or too old.",
          "source_ids": [
            "TECH-CURRENT",
            "HEALTH-CURRENT"
          ]
        },
        {
          "label": "SAVED RESULTS",
          "title": "An unfinished check cannot replace the last full result",
          "body": "The latest attempt and the last completed board remain separate.",
          "source_ids": [
            "FINANCE-CURRENT",
            "SUPPLY-CURRENT"
          ]
        }
      ],
      "market_connection": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.",
      "history_echo": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\". This is background only. It compares the nearest earlier saved Long-Term Investment section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Long-Term Investment",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Long-Term Investment",
          "question": "Which public investments meet at least six of ten research checks?",
          "headline": "4 investments meet at least six checks; 0 need more proof.",
          "narrative": [
            "Current news can start or speed up a review, but it does not earn any points. Every investment still faces the same ten checks, using official or first-hand proof. Only checks with clear support count.",
            "Six or more supported checks place an investment on the research board. Five or fewer keep it out. Missing or old proof does not count. Each addition or removal is saved as a new dated record."
          ],
          "beats": [
            {
              "label": "CURRENT NEWS",
              "title": "News can start a review but earns no points",
              "body": "A technology or market report may move an investment up the review list without passing any check.",
              "source_ids": [
                "FUTURE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "TEN CHECKS",
              "title": "Every investment faces the same test",
              "body": "Official records show whether each check is supported, not supported, unclear or too old.",
              "source_ids": [
                "HEALTH-CURRENT",
                "TECH-CURRENT"
              ]
            },
            {
              "label": "SAVED RESULTS",
              "title": "An unfinished check cannot replace the last full result",
              "body": "The latest attempt and the last completed board remain separate.",
              "source_ids": [
                "FINANCE-CURRENT",
                "SUPPLY-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "FINANCE-CURRENT",
            "FUTURE-CURRENT",
            "HEALTH-CURRENT",
            "MARKET-CURRENT",
            "SUPPLY-CURRENT",
            "TECH-CURRENT"
          ],
          "market_connection": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.",
          "watch_conditions": [
            "Fresh proof for a sixth check",
            "New proof that removes a supported check",
            "The next proof and membership review"
          ],
          "invalidation": "Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.",
          "content_sha256": "8db7f78158ca9ed3cc9ddb515f40a9c19a29ab120e7da8011aae7b6bd58b0bba",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Long-Term Investment",
          "question": "Which public assets clear the fixed ten-trait research screen?",
          "headline": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
          "narrative": [
            "The live pulse can open or prioritise a review, but it contributes zero traits. Every candidate still needs ten explicit verdicts backed by primary or public-authority evidence, and only PRESENT traits count.",
            "Six or more PRESENT traits places an asset on the research board. Five or fewer keeps it out. Missing or stale evidence stays unverified, while every addition or removal requires a new append-only receipt."
          ],
          "beats": [
            {
              "label": "PULSE",
              "title": "Current events open review but do not score it",
              "body": "A current technology or market report may prioritise checking while contributing zero traits.",
              "source_ids": [
                "FUTURE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "TEN TRAITS",
              "title": "Every candidate receives the same rubric",
              "body": "Primary records support PRESENT, ABSENT, UNVERIFIABLE or STALE states.",
              "source_ids": [
                "HEALTH-CURRENT",
                "TECH-CURRENT"
              ]
            },
            {
              "label": "RECEIPTS",
              "title": "Latest attempt and last complete remain separate",
              "body": "A held attempt cannot silently replace the last complete research board.",
              "source_ids": [
                "FINANCE-CURRENT",
                "SUPPLY-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "FINANCE-CURRENT",
            "FUTURE-CURRENT",
            "HEALTH-CURRENT",
            "MARKET-CURRENT",
            "SUPPLY-CURRENT",
            "TECH-CURRENT"
          ],
          "market_connection": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
          "watch_conditions": [
            "Fresh proof for a sixth trait",
            "Fresh evidence that removes a present trait",
            "The next source-validity and membership receipt"
          ],
          "invalidation": "Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.",
          "content_sha256": "7c852a0476bff7d8301c7f1ba0b39f1f6a3ed7b2830e5426e6143641de1bcf25",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "Which public assets clear the fixed ten-trait research screen?",
            "current": "Which public investments meet at least six of ten research checks?"
          },
          "headline": {
            "changed": true,
            "prior": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
            "current": "4 investments meet at least six checks; 0 need more proof."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "Current news can start or speed up a review, but it does not earn any points. Every investment still faces the same ten checks, using official or first-hand proof. Only checks with clear support count.",
              "Six or more supported checks place an investment on the research board. Five or fewer keep it out. Missing or old proof does not count. Each addition or removal is saved as a new dated record."
            ],
            "removed": [
              "The live pulse can open or prioritise a review, but it contributes zero traits. Every candidate still needs ten explicit verdicts backed by primary or public-authority evidence, and only PRESENT traits count.",
              "Six or more PRESENT traits places an asset on the research board. Five or fewer keeps it out. Missing or stale evidence stays unverified, while every addition or removal requires a new append-only receipt."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "News can start a review but earns no points",
              "Every investment faces the same test",
              "An unfinished check cannot replace the last full result"
            ],
            "removed_titles": [
              "Current events open review but do not score it",
              "Every candidate receives the same rubric",
              "Latest attempt and last complete remain separate"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 6,
            "current_count": 6,
            "added": [],
            "removed": [],
            "retained": [
              "FINANCE-CURRENT",
              "FUTURE-CURRENT",
              "HEALTH-CURRENT",
              "MARKET-CURRENT",
              "SUPPLY-CURRENT",
              "TECH-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
            "current": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Fresh proof for a sixth check",
              "New proof that removes a supported check",
              "The next proof and membership review"
            ],
            "removed": [
              "Fresh proof for a sixth trait",
              "Fresh evidence that removes a present trait",
              "The next source-validity and membership receipt"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.",
            "current": "Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing."
          }
        },
        "similarities": [
          "Both records belong to the Long-Term Investment canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
          "Headline changed from \"4 assets clear the 6-of-10 research threshold; 0 remain held.\" to \"4 investments meet at least six checks; 0 need more proof.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added News can start a review but earns no points, Every investment faces the same test, An unfinished check cannot replace the last full result; removed Current events open review but do not score it, Every candidate receives the same rubric, Latest attempt and last complete remain separate.",
          "Market connection changed from \"The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.\" to \"Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.\" to \"Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Long-Term Investment",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 7,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "07bdfef57831c4042f36f6b9b0a22e2578c69d348228d868f6b012100be8010c",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "0d3bd815458be98a3379dc2c75e8f3a0cbd59beb94716fe54dd8fd9a0cb2ef46"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LONG-TERM-INVESTMENT",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LONG-TERM-INVESTMENT",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Long-Term Investment",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Long-Term Investment",
          "source_headline": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
          "source_question": "Which public assets clear the fixed ten-trait research screen?",
          "source_market_connection": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "7c852a0476bff7d8301c7f1ba0b39f1f6a3ed7b2830e5426e6143641de1bcf25",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Long-Term Investment",
          "current_headline": "4 investments meet at least six checks; 0 need more proof.",
          "current_question": "Which public investments meet at least six of ten research checks?",
          "current_market_connection": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "8db7f78158ca9ed3cc9ddb515f40a9c19a29ab120e7da8011aae7b6bd58b0bba",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which public assets clear the fixed ten-trait research screen?",
              "current": "Which public investments meet at least six of ten research checks?"
            },
            "headline": {
              "changed": true,
              "prior": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
              "current": "4 investments meet at least six checks; 0 need more proof."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "Current news can start or speed up a review, but it does not earn any points. Every investment still faces the same ten checks, using official or first-hand proof. Only checks with clear support count.",
                "Six or more supported checks place an investment on the research board. Five or fewer keep it out. Missing or old proof does not count. Each addition or removal is saved as a new dated record."
              ],
              "removed": [
                "The live pulse can open or prioritise a review, but it contributes zero traits. Every candidate still needs ten explicit verdicts backed by primary or public-authority evidence, and only PRESENT traits count.",
                "Six or more PRESENT traits places an asset on the research board. Five or fewer keeps it out. Missing or stale evidence stays unverified, while every addition or removal requires a new append-only receipt."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "News can start a review but earns no points",
                "Every investment faces the same test",
                "An unfinished check cannot replace the last full result"
              ],
              "removed_titles": [
                "Current events open review but do not score it",
                "Every candidate receives the same rubric",
                "Latest attempt and last complete remain separate"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "FINANCE-CURRENT",
                "FUTURE-CURRENT",
                "HEALTH-CURRENT",
                "MARKET-CURRENT",
                "SUPPLY-CURRENT",
                "TECH-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
              "current": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Fresh proof for a sixth check",
                "New proof that removes a supported check",
                "The next proof and membership review"
              ],
              "removed": [
                "Fresh proof for a sixth trait",
                "Fresh evidence that removes a present trait",
                "The next source-validity and membership receipt"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.",
              "current": "Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing."
            }
          },
          "similarities": [
            "Both records belong to the Long-Term Investment canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
            "Headline changed from \"4 assets clear the 6-of-10 research threshold; 0 remain held.\" to \"4 investments meet at least six checks; 0 need more proof.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added News can start a review but earns no points, Every investment faces the same test, An unfinished check cannot replace the last full result; removed Current events open review but do not score it, Every candidate receives the same rubric, Latest attempt and last complete remain separate.",
            "Market connection changed from \"The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.\" to \"Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.\" to \"Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.\"."
          ],
          "comparison": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
          "difference": "Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\". Headline changed from \"4 assets clear the 6-of-10 research threshold; 0 remain held.\" to \"4 investments meet at least six checks; 0 need more proof.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added News can start a review but earns no points, Every investment faces the same test, An unfinished check cannot replace the last full result; removed Current events open review but do not score it, Every candidate receives the same rubric, Latest attempt and last complete remain separate. Market connection changed from \"The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.\" to \"Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.\" to \"Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Long-Term Investment",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 7,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "07bdfef57831c4042f36f6b9b0a22e2578c69d348228d868f6b012100be8010c",
          "comparison_receipt_sha256": "0d3bd815458be98a3379dc2c75e8f3a0cbd59beb94716fe54dd8fd9a0cb2ef46",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "7e8af5fda6a03d775722130375becc6cfa5ee45d6f8eab8b339c300448a9f134",
        "query_concepts": {
          "entities": [],
          "events": [],
          "terms": [
            "investments",
            "meet",
            "least",
            "six",
            "checks",
            "need",
            "proof",
            "may",
            "move",
            "review",
            "forward",
            "cannot",
            "pass",
            "check",
            "prove",
            "three",
            "result",
            "set",
            "future",
            "price",
            "can",
            "start",
            "speed",
            "but",
            "not",
            "earn",
            "any",
            "points",
            "every",
            "investment",
            "still",
            "faces",
            "the",
            "same",
            "ten",
            "official",
            "first",
            "hand",
            "clear",
            "support",
            "count",
            "supported",
            "place",
            "research",
            "board",
            "five",
            "fewer",
            "keep",
            "out",
            "missing",
            "old",
            "addition",
            "removal",
            "saved",
            "new",
            "dated",
            "record",
            "fresh",
            "for",
            "sixth",
            "removes",
            "next",
            "and",
            "membership"
          ],
          "direction": "UP"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-06-LONG-TERM-INVESTMENT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-06-LONG-TERM-INVESTMENT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT::TAB-06-LONG-TERM-INVESTMENT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT::TAB-06-LONG-TERM-INVESTMENT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-10-PROOF"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT"
        ],
        "direction_counts": {
          "UP": 3,
          "DOWN": 0,
          "MIXED": 2,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT::TAB-06-LONG-TERM-INVESTMENT",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
            "date": "2026-08-02",
            "title": "4 assets clear the first 6-of-10 research threshold; 0 remain held, and none is promised to grow exponentially.",
            "engine": null,
            "tab": "Long-Term Investment",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 217.2952,
            "why": [
              "shared terms: ten, three, and, investment, research"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT::TAB-06-LONG-TERM-INVESTMENT",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
            "date": "2026-08-02",
            "title": "4 assets clear the first 6-of-10 research threshold; 0 remain held, and none is promised to grow exponentially.",
            "engine": null,
            "tab": "Long-Term Investment",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 217.2952,
            "why": [
              "shared terms: ten, three, and, investment, research"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT::TAB-06-LONG-TERM-INVESTMENT",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
            "date": "2026-08-02",
            "title": "4 assets clear the first 6-of-10 research threshold; 0 remain held, and the historical trait overlap has not yet been measured.",
            "engine": null,
            "tab": "Long-Term Investment",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 181.9501,
            "why": [
              "shared terms: ten, research, investment, three, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT::TAB-06-LONG-TERM-INVESTMENT",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
            "date": "2026-08-02",
            "title": "4 assets clear the first 6-of-10 research threshold; 0 remain held, and the historical trait overlap has not yet been measured.",
            "engine": null,
            "tab": "Long-Term Investment",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 181.9501,
            "why": [
              "shared terms: ten, research, investment, three, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-10-PROOF",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "Every current claim and every prior publication keeps a route.",
            "engine": null,
            "tab": "Proof",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 159.1757,
            "why": [
              "shared terms: and, every, dated, proof, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "ff9299fbf1710f3ac3546a67d907a3319aaf9b293b910ae5cb6060b95e4eb6d0"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LONG-TERM-INVESTMENT",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LONG-TERM-INVESTMENT",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Long-Term Investment",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Long-Term Investment",
          "source_headline": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
          "source_question": "Which public assets clear the fixed ten-trait research screen?",
          "source_market_connection": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "7c852a0476bff7d8301c7f1ba0b39f1f6a3ed7b2830e5426e6143641de1bcf25",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Long-Term Investment",
          "current_headline": "4 investments meet at least six checks; 0 need more proof.",
          "current_question": "Which public investments meet at least six of ten research checks?",
          "current_market_connection": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "8db7f78158ca9ed3cc9ddb515f40a9c19a29ab120e7da8011aae7b6bd58b0bba",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which public assets clear the fixed ten-trait research screen?",
              "current": "Which public investments meet at least six of ten research checks?"
            },
            "headline": {
              "changed": true,
              "prior": "4 assets clear the 6-of-10 research threshold; 0 remain held.",
              "current": "4 investments meet at least six checks; 0 need more proof."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "Current news can start or speed up a review, but it does not earn any points. Every investment still faces the same ten checks, using official or first-hand proof. Only checks with clear support count.",
                "Six or more supported checks place an investment on the research board. Five or fewer keep it out. Missing or old proof does not count. Each addition or removal is saved as a new dated record."
              ],
              "removed": [
                "The live pulse can open or prioritise a review, but it contributes zero traits. Every candidate still needs ten explicit verdicts backed by primary or public-authority evidence, and only PRESENT traits count.",
                "Six or more PRESENT traits places an asset on the research board. Five or fewer keeps it out. Missing or stale evidence stays unverified, while every addition or removal requires a new append-only receipt."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "News can start a review but earns no points",
                "Every investment faces the same test",
                "An unfinished check cannot replace the last full result"
              ],
              "removed_titles": [
                "Current events open review but do not score it",
                "Every candidate receives the same rubric",
                "Latest attempt and last complete remain separate"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "FINANCE-CURRENT",
                "FUTURE-CURRENT",
                "HEALTH-CURRENT",
                "MARKET-CURRENT",
                "SUPPLY-CURRENT",
                "TECH-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.",
              "current": "Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Fresh proof for a sixth check",
                "New proof that removes a supported check",
                "The next proof and membership review"
              ],
              "removed": [
                "Fresh proof for a sixth trait",
                "Fresh evidence that removes a present trait",
                "The next source-validity and membership receipt"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.",
              "current": "Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing."
            }
          },
          "similarities": [
            "Both records belong to the Long-Term Investment canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
            "Headline changed from \"4 assets clear the 6-of-10 research threshold; 0 remain held.\" to \"4 investments meet at least six checks; 0 need more proof.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added News can start a review but earns no points, Every investment faces the same test, An unfinished check cannot replace the last full result; removed Current events open review but do not score it, Every candidate receives the same rubric, Latest attempt and last complete remain separate.",
            "Market connection changed from \"The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.\" to \"Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.\" to \"Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.\"."
          ],
          "comparison": "The Long-Term Investment tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\".",
          "difference": "Question changed from \"Which public assets clear the fixed ten-trait research screen?\" to \"Which public investments meet at least six of ten research checks?\". Headline changed from \"4 assets clear the 6-of-10 research threshold; 0 remain held.\" to \"4 investments meet at least six checks; 0 need more proof.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added News can start a review but earns no points, Every investment faces the same test, An unfinished check cannot replace the last full result; removed Current events open review but do not score it, Every candidate receives the same rubric, Latest attempt and last complete remain separate. Market connection changed from \"The current pulse may prioritise research. It cannot score a trait, prove a three-year outcome or create a price target.\" to \"Current news may move a review forward. It cannot pass a check, prove a three-year result or set a future price.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Hold the board when evidence is stale, ten verdicts are incomplete, venue or currency is wrong, or the receipt chain breaks.\" to \"Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Long-Term Investment",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 7,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "07bdfef57831c4042f36f6b9b0a22e2578c69d348228d868f6b012100be8010c",
          "comparison_receipt_sha256": "0d3bd815458be98a3379dc2c75e8f3a0cbd59beb94716fe54dd8fd9a0cb2ef46",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Use the same ten checks for every investment.",
        "Use official or first-hand sources and record when each source was checked.",
        "Record the market, currency, time and trading state for every price.",
        "At least six checks need clear support before public inclusion.",
        "Save every addition and removal without changing yesterday's result."
      ],
      "watch_conditions": [
        "Fresh proof for a sixth check",
        "New proof that removes a supported check",
        "The next proof and membership review"
      ],
      "invalidation": "Do not update the board when proof is old, the ten checks are incomplete, the market or currency is wrong, or a dated record is missing.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-02-0150-SGT",
        "observed_at_sgt": "2026-08-03T03:15:00+08:00",
        "verified_sources": 21,
        "candidate_sources": 21,
        "automation_attempt_id": "OTR-LONG-TERM-EXPERIMENT-PUBLICATION-2026-08-03-0315-SGT",
        "state": "COMPLETE"
      }
    },
    "Dots": {
      "eyebrow": "DOTS · 3 AUGUST 2026",
      "question": "How do today's main reports connect without becoming one false story?",
      "headline": "Talks changed war fears, supply changed oil, and government action changed yen risk.",
      "narrative": [
        "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first link is simple: a pause and hope for talks lowered war fears, oil fell and US share prices rose. The market report shows the first response, but we still need to see whether it lasts.",
        "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ added a separate supply reason for lower oil. Joint action on the yen began another link: government action made bets against the yen more risky and may affect wider Asian markets. That wider result needs later proof."
      ],
      "beats": [
        {
          "label": "A · WAR FEARS",
          "title": "A reported pause reduced one immediate fear",
          "body": "The first market response fits lower conflict risk, but a pause can reverse and does not prove a final deal.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "B · SUPPLY",
          "title": "OPEC+ gave oil a second explanation",
          "body": "More expected supply can push oil lower even if hopes for talks later weaken.",
          "source_ids": [
            "ENERGY-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "C · YEN",
          "title": "Joint action made one-sided yen bets more risky",
          "body": "Wider results depend on whether the action changes money flows after the first response.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.",
      "history_echo": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\". This is background only. It compares the nearest earlier saved Dots section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Dots",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Dots",
          "question": "How do today's main reports connect without becoming one false story?",
          "headline": "Talks changed war fears, supply changed oil, and government action changed yen risk.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first link is simple: a pause and hope for talks lowered war fears, oil fell and US share prices rose. The market report shows the first response, but we still need to see whether it lasts.",
            "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ added a separate supply reason for lower oil. Joint action on the yen began another link: government action made bets against the yen more risky and may affect wider Asian markets. That wider result needs later proof."
          ],
          "beats": [
            {
              "label": "A · WAR FEARS",
              "title": "A reported pause reduced one immediate fear",
              "body": "The first market response fits lower conflict risk, but a pause can reverse and does not prove a final deal.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "B · SUPPLY",
              "title": "OPEC+ gave oil a second explanation",
              "body": "More expected supply can push oil lower even if hopes for talks later weaken.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "C · YEN",
              "title": "Joint action made one-sided yen bets more risky",
              "body": "Wider results depend on whether the action changes money flows after the first response.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.",
          "watch_conditions": [
            "Conflict news beside oil prices",
            "Whether OPEC+ adds the supply it promised",
            "The yen and wider Asian markets after the first move"
          ],
          "invalidation": "Remove a link when the expected result does not appear or when a stronger source shows a different cause.",
          "content_sha256": "fe1e5b3a7fe944ebece6b174fcbb73c9adfc1dd99c8a9429098e61743ae9ec82",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Dots",
          "question": "How do today's main signals connect without becoming one false story?",
          "headline": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first chain is pause and talks optimism → lower perceived conflict risk → weaker oil and firmer US futures. The final arrow is observed in the market report; the durability of every step remains open.",
            "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ adds an independent supply chain into oil, while joint yen intervention begins a different chain: official action → changed positioning risk → possible shifts in hedging, funding and Asian assets. The last step needs post-cut market evidence."
          ],
          "beats": [
            {
              "label": "A · WAR PREMIUM",
              "title": "A reported pause reduced one source of immediate fear",
              "body": "The market response is consistent with lower conflict risk, but a pause can reverse and does not prove a final agreement.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "B · SUPPLY",
              "title": "OPEC+ supplied a second oil explanation",
              "body": "Expected supply can push crude lower even if the diplomatic story later weakens.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "C · CURRENCY",
              "title": "Joint action changed the cost of one-way yen bets",
              "body": "Regional consequences depend on whether the intervention changes flows beyond the first response.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
          "watch_conditions": [
            "Conflict-risk news beside crude",
            "OPEC+ supply follow-through",
            "Yen and regional-asset follow-through"
          ],
          "invalidation": "Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.",
          "content_sha256": "05cd4194ee1dffc633e1df51ed5557a3b103cba28f9a9b73cd5f5271b068494b",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "How do today's main signals connect without becoming one false story?",
            "current": "How do today's main reports connect without becoming one false story?"
          },
          "headline": {
            "changed": true,
            "prior": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
            "current": "Talks changed war fears, supply changed oil, and government action changed yen risk."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first link is simple: a pause and hope for talks lowered war fears, oil fell and US share prices rose. The market report shows the first response, but we still need to see whether it lasts.",
              "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ added a separate supply reason for lower oil. Joint action on the yen began another link: government action made bets against the yen more risky and may affect wider Asian markets. That wider result needs later proof."
            ],
            "removed": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first chain is pause and talks optimism → lower perceived conflict risk → weaker oil and firmer US futures. The final arrow is observed in the market report; the durability of every step remains open.",
              "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ adds an independent supply chain into oil, while joint yen intervention begins a different chain: official action → changed positioning risk → possible shifts in hedging, funding and Asian assets. The last step needs post-cut market evidence."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "A reported pause reduced one immediate fear",
              "OPEC+ gave oil a second explanation",
              "Joint action made one-sided yen bets more risky"
            ],
            "removed_titles": [
              "A reported pause reduced one source of immediate fear",
              "OPEC+ supplied a second oil explanation",
              "Joint action changed the cost of one-way yen bets"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
            "current": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Conflict news beside oil prices",
              "Whether OPEC+ adds the supply it promised",
              "The yen and wider Asian markets after the first move"
            ],
            "removed": [
              "Conflict-risk news beside crude",
              "OPEC+ supply follow-through",
              "Yen and regional-asset follow-through"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.",
            "current": "Remove a link when the expected result does not appear or when a stronger source shows a different cause."
          }
        },
        "similarities": [
          "Both records belong to the Dots canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
          "Headline changed from \"Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.\" to \"Talks changed war fears, supply changed oil, and government action changed yen risk.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added A reported pause reduced one immediate fear, OPEC+ gave oil a second explanation, Joint action made one-sided yen bets more risky; removed A reported pause reduced one source of immediate fear, OPEC+ supplied a second oil explanation, Joint action changed the cost of one-way yen bets.",
          "Market connection changed from \"The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.\" to \"The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.\" to \"Remove a link when the expected result does not appear or when a stronger source shows a different cause.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Dots",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "1af9eb3f9770eb8566f938745e5409208a5f29f78c6f22ac3ed3b0afbda983f8",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "1096584eba6cfaab7e731d68f176548cff45fea31d45b6e5cd28054a638ff275"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-DOTS",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-DOTS",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Dots",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Dots",
          "source_headline": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
          "source_question": "How do today's main signals connect without becoming one false story?",
          "source_market_connection": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "05cd4194ee1dffc633e1df51ed5557a3b103cba28f9a9b73cd5f5271b068494b",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Dots",
          "current_headline": "Talks changed war fears, supply changed oil, and government action changed yen risk.",
          "current_question": "How do today's main reports connect without becoming one false story?",
          "current_market_connection": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "fe1e5b3a7fe944ebece6b174fcbb73c9adfc1dd99c8a9429098e61743ae9ec82",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "How do today's main signals connect without becoming one false story?",
              "current": "How do today's main reports connect without becoming one false story?"
            },
            "headline": {
              "changed": true,
              "prior": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
              "current": "Talks changed war fears, supply changed oil, and government action changed yen risk."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first link is simple: a pause and hope for talks lowered war fears, oil fell and US share prices rose. The market report shows the first response, but we still need to see whether it lasts.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ added a separate supply reason for lower oil. Joint action on the yen began another link: government action made bets against the yen more risky and may affect wider Asian markets. That wider result needs later proof."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first chain is pause and talks optimism → lower perceived conflict risk → weaker oil and firmer US futures. The final arrow is observed in the market report; the durability of every step remains open.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ adds an independent supply chain into oil, while joint yen intervention begins a different chain: official action → changed positioning risk → possible shifts in hedging, funding and Asian assets. The last step needs post-cut market evidence."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A reported pause reduced one immediate fear",
                "OPEC+ gave oil a second explanation",
                "Joint action made one-sided yen bets more risky"
              ],
              "removed_titles": [
                "A reported pause reduced one source of immediate fear",
                "OPEC+ supplied a second oil explanation",
                "Joint action changed the cost of one-way yen bets"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
              "current": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Conflict news beside oil prices",
                "Whether OPEC+ adds the supply it promised",
                "The yen and wider Asian markets after the first move"
              ],
              "removed": [
                "Conflict-risk news beside crude",
                "OPEC+ supply follow-through",
                "Yen and regional-asset follow-through"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.",
              "current": "Remove a link when the expected result does not appear or when a stronger source shows a different cause."
            }
          },
          "similarities": [
            "Both records belong to the Dots canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
            "Headline changed from \"Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.\" to \"Talks changed war fears, supply changed oil, and government action changed yen risk.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A reported pause reduced one immediate fear, OPEC+ gave oil a second explanation, Joint action made one-sided yen bets more risky; removed A reported pause reduced one source of immediate fear, OPEC+ supplied a second oil explanation, Joint action changed the cost of one-way yen bets.",
            "Market connection changed from \"The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.\" to \"The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.\" to \"Remove a link when the expected result does not appear or when a stronger source shows a different cause.\"."
          ],
          "comparison": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
          "difference": "Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\". Headline changed from \"Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.\" to \"Talks changed war fears, supply changed oil, and government action changed yen risk.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A reported pause reduced one immediate fear, OPEC+ gave oil a second explanation, Joint action made one-sided yen bets more risky; removed A reported pause reduced one source of immediate fear, OPEC+ supplied a second oil explanation, Joint action changed the cost of one-way yen bets. Market connection changed from \"The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.\" to \"The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.\" to \"Remove a link when the expected result does not appear or when a stronger source shows a different cause.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Dots",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "1af9eb3f9770eb8566f938745e5409208a5f29f78c6f22ac3ed3b0afbda983f8",
          "comparison_receipt_sha256": "1096584eba6cfaab7e731d68f176548cff45fea31d45b6e5cd28054a638ff275",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "80440a3b57e42187cd46676ba97ce0195adebc089bc1da883119fa7080202f57",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            },
            {
              "id": "ENERGY_SUPPLY",
              "label": "Energy and supply"
            }
          ],
          "terms": [
            "talks",
            "changed",
            "war",
            "fears",
            "supply",
            "oil",
            "and",
            "government",
            "action",
            "yen",
            "risk",
            "the",
            "useful",
            "picture",
            "has",
            "separate",
            "forces",
            "not",
            "one",
            "cause",
            "for",
            "everything",
            "can",
            "overlap",
            "still",
            "checked",
            "own",
            "today",
            "com",
            "trump",
            "calls",
            "pause",
            "military",
            "strikes",
            "iran",
            "bloomberg",
            "slumps",
            "futures",
            "rise",
            "optimism",
            "markets",
            "wrap",
            "first",
            "link",
            "simple",
            "hope",
            "lowered",
            "fell",
            "share",
            "prices",
            "rose",
            "market",
            "shows",
            "response",
            "but",
            "need",
            "see",
            "whether",
            "lasts",
            "benzinga",
            "crude",
            "price",
            "dives",
            "opec",
            "agrees",
            "hike",
            "finance",
            "yahoo",
            "japan",
            "confirms",
            "joint",
            "intervention",
            "readiness",
            "added",
            "reason",
            "lower",
            "began",
            "made",
            "bets",
            "risky",
            "may",
            "affect",
            "wider",
            "asian",
            "result",
            "needs",
            "later",
            "proof",
            "conflict",
            "beside",
            "adds",
            "promised",
            "move"
          ],
          "direction": "MIXED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 296.3532,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, oil, intervention, risk, proof"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 295.2546,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, today, oil, and, proof"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 239.903,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, proof, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 239.903,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, proof, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 239.903,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, proof, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "6536a7e5ffd6d94f4a9f2928ccdbb013b81aa588efa19f054ad35e23104c2644"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-DOTS",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-DOTS",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Dots",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Dots",
          "source_headline": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
          "source_question": "How do today's main signals connect without becoming one false story?",
          "source_market_connection": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "05cd4194ee1dffc633e1df51ed5557a3b103cba28f9a9b73cd5f5271b068494b",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Dots",
          "current_headline": "Talks changed war fears, supply changed oil, and government action changed yen risk.",
          "current_question": "How do today's main reports connect without becoming one false story?",
          "current_market_connection": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "fe1e5b3a7fe944ebece6b174fcbb73c9adfc1dd99c8a9429098e61743ae9ec82",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "How do today's main signals connect without becoming one false story?",
              "current": "How do today's main reports connect without becoming one false story?"
            },
            "headline": {
              "changed": true,
              "prior": "Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.",
              "current": "Talks changed war fears, supply changed oil, and government action changed yen risk."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first link is simple: a pause and hope for talks lowered war fears, oil fell and US share prices rose. The market report shows the first response, but we still need to see whether it lasts.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ added a separate supply reason for lower oil. Joint action on the yen began another link: government action made bets against the yen more risky and may affect wider Asian markets. That wider result needs later proof."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” The first chain is pause and talks optimism → lower perceived conflict risk → weaker oil and firmer US futures. The final arrow is observed in the market report; the durability of every step remains open.",
                "benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” OPEC+ adds an independent supply chain into oil, while joint yen intervention begins a different chain: official action → changed positioning risk → possible shifts in hedging, funding and Asian assets. The last step needs post-cut market evidence."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A reported pause reduced one immediate fear",
                "OPEC+ gave oil a second explanation",
                "Joint action made one-sided yen bets more risky"
              ],
              "removed_titles": [
                "A reported pause reduced one source of immediate fear",
                "OPEC+ supplied a second oil explanation",
                "Joint action changed the cost of one-way yen bets"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.",
              "current": "The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Conflict news beside oil prices",
                "Whether OPEC+ adds the supply it promised",
                "The yen and wider Asian markets after the first move"
              ],
              "removed": [
                "Conflict-risk news beside crude",
                "OPEC+ supply follow-through",
                "Yen and regional-asset follow-through"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.",
              "current": "Remove a link when the expected result does not appear or when a stronger source shows a different cause."
            }
          },
          "similarities": [
            "Both records belong to the Dots canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
            "Headline changed from \"Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.\" to \"Talks changed war fears, supply changed oil, and government action changed yen risk.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A reported pause reduced one immediate fear, OPEC+ gave oil a second explanation, Joint action made one-sided yen bets more risky; removed A reported pause reduced one source of immediate fear, OPEC+ supplied a second oil explanation, Joint action changed the cost of one-way yen bets.",
            "Market connection changed from \"The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.\" to \"The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.\" to \"Remove a link when the expected result does not appear or when a stronger source shows a different cause.\"."
          ],
          "comparison": "The Dots tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\".",
          "difference": "Question changed from \"How do today's main signals connect without becoming one false story?\" to \"How do today's main reports connect without becoming one false story?\". Headline changed from \"Diplomacy changed the war premium; supply changed oil; intervention changed currency risk.\" to \"Talks changed war fears, supply changed oil, and government action changed yen risk.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A reported pause reduced one immediate fear, OPEC+ gave oil a second explanation, Joint action made one-sided yen bets more risky; removed A reported pause reduced one source of immediate fear, OPEC+ supplied a second oil explanation, Joint action changed the cost of one-way yen bets. Market connection changed from \"The useful connection is a map of separate forces, not a single-cause tale. Diplomacy, producer supply and official currency action can overlap while remaining independently testable.\" to \"The useful picture has separate forces, not one cause for everything. Talks, oil supply and action on the yen can overlap while still being checked on their own.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Break any arrow when its expected market response fails to appear or when a stronger source identifies a different cause.\" to \"Remove a link when the expected result does not appear or when a stronger source shows a different cause.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Dots",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "1af9eb3f9770eb8566f938745e5409208a5f29f78c6f22ac3ed3b0afbda983f8",
          "comparison_receipt_sha256": "1096584eba6cfaab7e731d68f176548cff45fea31d45b6e5cd28054a638ff275",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Conflict news beside oil prices",
        "Whether OPEC+ adds the supply it promised",
        "The yen and wider Asian markets after the first move"
      ],
      "invalidation": "Remove a link when the expected result does not appear or when a stronger source shows a different cause.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Novel": {
      "eyebrow": "NOVEL · 3 AUGUST 2026",
      "question": "What is easy to miss when several government decisions arrive together?",
      "headline": "The timing of government decisions can shape a market day even when each decision works in a different way.",
      "narrative": [
        "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the short-term danger of military action. Another confirmed that two governments acted together in a major currency. Both can force choices before slower economic reports arrive.",
        "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The easy-to-miss lesson is that the same fall in oil can have two real causes: lower war fears and more expected supply. OTR keeps them separate because different later events could prove each one wrong."
      ],
      "beats": [
        {
          "label": "TIMING",
          "title": "Official words can move faster than economic reports",
          "body": "A strike pause or action on the yen can move prices before slower reports show any effect.",
          "source_ids": [
            "WORLD-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "CAUSES",
          "title": "Two correct explanations can exist together",
          "body": "Hope for Iran talks and more OPEC+ supply can both push oil down. Neither should erase the other.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "CHOICES",
          "title": "Different causes need different preparation",
          "body": "A return to conflict needs close news checks. A supply change needs checks on stock, producers and demand.",
          "source_ids": [
            "WORLD-CURRENT",
            "ENERGY-CURRENT"
          ]
        }
      ],
      "market_connection": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.",
      "history_echo": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\". This is background only. It compares the nearest earlier saved Novel section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Novel",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Novel",
          "question": "What is easy to miss when several government decisions arrive together?",
          "headline": "The timing of government decisions can shape a market day even when each decision works in a different way.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the short-term danger of military action. Another confirmed that two governments acted together in a major currency. Both can force choices before slower economic reports arrive.",
            "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The easy-to-miss lesson is that the same fall in oil can have two real causes: lower war fears and more expected supply. OTR keeps them separate because different later events could prove each one wrong."
          ],
          "beats": [
            {
              "label": "TIMING",
              "title": "Official words can move faster than economic reports",
              "body": "A strike pause or action on the yen can move prices before slower reports show any effect.",
              "source_ids": [
                "FINANCE-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "CAUSES",
              "title": "Two correct explanations can exist together",
              "body": "Hope for Iran talks and more OPEC+ supply can both push oil down. Neither should erase the other.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "CHOICES",
              "title": "Different causes need different preparation",
              "body": "A return to conflict needs close news checks. A supply change needs checks on stock, producers and demand.",
              "source_ids": [
                "ENERGY-CURRENT",
                "WORLD-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.",
          "watch_conditions": [
            "Which oil driver persists",
            "Whether official currency action repeats",
            "Which decisions change before slow data arrives"
          ],
          "invalidation": "This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.",
          "content_sha256": "1d9c9707e86b610d1d8e0b242967e4f6cad58513e2d67cb67964fbad61c3dc09",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Novel",
          "question": "What is easy to miss when several policy shocks arrive together?",
          "headline": "Policy timing can dominate a market day even when the policies act through different channels.",
          "narrative": [
            "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the near-term path of military risk; another confirmed coordinated official action in a major currency. Both can force decisions before slow economic data catches up.",
            "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The non-obvious lesson is that the same oil move can carry both a demand-for-risk explanation and a supply explanation. A useful intelligence system must keep those causes separate because they imply different invalidation points."
          ],
          "beats": [
            {
              "label": "TIMING",
              "title": "Official words can move faster than economic releases",
              "body": "A strike pause or intervention can change prices and hedges before slower indicators show any effect.",
              "source_ids": [
                "FINANCE-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "CAUSES",
              "title": "Two correct explanations can coexist",
              "body": "Iran optimism and OPEC+ supply policy can both pressure oil; neither should erase the other.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "DECISION",
              "title": "Different causes require different preparation",
              "body": "A conflict reversal calls for event monitoring, while a supply shift calls for inventory, producer and demand checks.",
              "source_ids": [
                "ENERGY-CURRENT",
                "WORLD-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
          "watch_conditions": [
            "Which oil driver persists",
            "Whether official currency action repeats",
            "Which decisions change before slow data arrives"
          ],
          "invalidation": "The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.",
          "content_sha256": "2dea57ebb50745b3f18ba0f89d09086a7ff973178a93591269e94ee9fbb61fb7",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids",
            "watch_conditions"
          ],
          "question": {
            "changed": true,
            "prior": "What is easy to miss when several policy shocks arrive together?",
            "current": "What is easy to miss when several government decisions arrive together?"
          },
          "headline": {
            "changed": true,
            "prior": "Policy timing can dominate a market day even when the policies act through different channels.",
            "current": "The timing of government decisions can shape a market day even when each decision works in a different way."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the short-term danger of military action. Another confirmed that two governments acted together in a major currency. Both can force choices before slower economic reports arrive.",
              "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The easy-to-miss lesson is that the same fall in oil can have two real causes: lower war fears and more expected supply. OTR keeps them separate because different later events could prove each one wrong."
            ],
            "removed": [
              "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the near-term path of military risk; another confirmed coordinated official action in a major currency. Both can force decisions before slow economic data catches up.",
              "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The non-obvious lesson is that the same oil move can carry both a demand-for-risk explanation and a supply explanation. A useful intelligence system must keep those causes separate because they imply different invalidation points."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "Official words can move faster than economic reports",
              "Two correct explanations can exist together",
              "Different causes need different preparation"
            ],
            "removed_titles": [
              "Official words can move faster than economic releases",
              "Two correct explanations can coexist",
              "Different causes require different preparation"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
            "current": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting."
          },
          "watch_conditions": {
            "changed": false,
            "prior_count": 3,
            "current_count": 3,
            "added": [],
            "removed": [],
            "retained": [
              "Which oil driver persists",
              "Whether official currency action repeats",
              "Which decisions change before slow data arrives"
            ],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.",
            "current": "This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response."
          }
        },
        "similarities": [
          "Both records belong to the Novel canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged.",
          "The saved watch conditions is unchanged."
        ],
        "differences": [
          "Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
          "Headline changed from \"Policy timing can dominate a market day even when the policies act through different channels.\" to \"The timing of government decisions can shape a market day even when each decision works in a different way.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added Official words can move faster than economic reports, Two correct explanations can exist together, Different causes need different preparation; removed Official words can move faster than economic releases, Two correct explanations can coexist, Different causes require different preparation.",
          "Market connection changed from \"The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.\" to \"The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.\".",
          "Invalidation condition changed from \"The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.\" to \"This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Novel",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "7547d8dc7a4757d92de34523ffcefa821b9e2ea71b73325ddc8a0f2905ba53f2",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "9e2ab726cb980a4ba70a9cec1c4c6ddb473e3818ec703780566a6b8076cadec9"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-NOVEL",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-NOVEL",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Novel",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Novel",
          "source_headline": "Policy timing can dominate a market day even when the policies act through different channels.",
          "source_question": "What is easy to miss when several policy shocks arrive together?",
          "source_market_connection": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "2dea57ebb50745b3f18ba0f89d09086a7ff973178a93591269e94ee9fbb61fb7",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Novel",
          "current_headline": "The timing of government decisions can shape a market day even when each decision works in a different way.",
          "current_question": "What is easy to miss when several government decisions arrive together?",
          "current_market_connection": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "1d9c9707e86b610d1d8e0b242967e4f6cad58513e2d67cb67964fbad61c3dc09",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids",
              "watch_conditions"
            ],
            "question": {
              "changed": true,
              "prior": "What is easy to miss when several policy shocks arrive together?",
              "current": "What is easy to miss when several government decisions arrive together?"
            },
            "headline": {
              "changed": true,
              "prior": "Policy timing can dominate a market day even when the policies act through different channels.",
              "current": "The timing of government decisions can shape a market day even when each decision works in a different way."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the short-term danger of military action. Another confirmed that two governments acted together in a major currency. Both can force choices before slower economic reports arrive.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The easy-to-miss lesson is that the same fall in oil can have two real causes: lower war fears and more expected supply. OTR keeps them separate because different later events could prove each one wrong."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the near-term path of military risk; another confirmed coordinated official action in a major currency. Both can force decisions before slow economic data catches up.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The non-obvious lesson is that the same oil move can carry both a demand-for-risk explanation and a supply explanation. A useful intelligence system must keep those causes separate because they imply different invalidation points."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Official words can move faster than economic reports",
                "Two correct explanations can exist together",
                "Different causes need different preparation"
              ],
              "removed_titles": [
                "Official words can move faster than economic releases",
                "Two correct explanations can coexist",
                "Different causes require different preparation"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
              "current": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting."
            },
            "watch_conditions": {
              "changed": false,
              "prior_count": 3,
              "current_count": 3,
              "added": [],
              "removed": [],
              "retained": [
                "Which oil driver persists",
                "Whether official currency action repeats",
                "Which decisions change before slow data arrives"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.",
              "current": "This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response."
            }
          },
          "similarities": [
            "Both records belong to the Novel canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged.",
            "The saved watch conditions is unchanged."
          ],
          "differences": [
            "Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
            "Headline changed from \"Policy timing can dominate a market day even when the policies act through different channels.\" to \"The timing of government decisions can shape a market day even when each decision works in a different way.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Official words can move faster than economic reports, Two correct explanations can exist together, Different causes need different preparation; removed Official words can move faster than economic releases, Two correct explanations can coexist, Different causes require different preparation.",
            "Market connection changed from \"The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.\" to \"The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.\".",
            "Invalidation condition changed from \"The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.\" to \"This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.\"."
          ],
          "comparison": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
          "difference": "Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\". Headline changed from \"Policy timing can dominate a market day even when the policies act through different channels.\" to \"The timing of government decisions can shape a market day even when each decision works in a different way.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Official words can move faster than economic reports, Two correct explanations can exist together, Different causes need different preparation; removed Official words can move faster than economic releases, Two correct explanations can coexist, Different causes require different preparation. Market connection changed from \"The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.\" to \"The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.\". Invalidation condition changed from \"The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.\" to \"This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Novel",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "7547d8dc7a4757d92de34523ffcefa821b9e2ea71b73325ddc8a0f2905ba53f2",
          "comparison_receipt_sha256": "9e2ab726cb980a4ba70a9cec1c4c6ddb473e3818ec703780566a6b8076cadec9",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "be2387b55b205844ebb7c927521f568a5faed7a97db67430122bfae0093243c1",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "the",
            "timing",
            "government",
            "decisions",
            "can",
            "shape",
            "market",
            "day",
            "even",
            "decision",
            "works",
            "different",
            "way",
            "advantage",
            "comes",
            "separating",
            "causes",
            "early",
            "then",
            "giving",
            "one",
            "its",
            "own",
            "warning",
            "sign",
            "person",
            "charge",
            "and",
            "reason",
            "stop",
            "acting",
            "today",
            "com",
            "trump",
            "calls",
            "for",
            "pause",
            "military",
            "strikes",
            "iran",
            "finance",
            "yahoo",
            "japan",
            "confirms",
            "joint",
            "yen",
            "intervention",
            "readiness",
            "action",
            "changed",
            "short",
            "term",
            "danger",
            "confirmed",
            "two",
            "governments",
            "acted",
            "together",
            "major",
            "currency",
            "force",
            "choices",
            "slower",
            "economic",
            "arrive",
            "bloomberg",
            "oil",
            "slumps",
            "futures",
            "rise",
            "talks",
            "optimism",
            "markets",
            "wrap",
            "benzinga",
            "crude",
            "price",
            "dives",
            "opec",
            "agrees",
            "supply",
            "hike",
            "easy",
            "miss",
            "lesson",
            "same",
            "fall",
            "real",
            "lower",
            "war",
            "fears",
            "expected",
            "keeps",
            "them",
            "separate",
            "later",
            "events",
            "prove",
            "wrong",
            "driver",
            "persists",
            "whether",
            "official",
            "repeats",
            "change",
            "slow",
            "data",
            "arrives"
          ],
          "direction": "MIXED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 286.9469,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, today, oil, and, crude"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 264.5242,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, oil, intervention, and, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 202.8435,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, official, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 202.8435,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, official, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 202.8435,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, the, and, official, today"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "5f68b4a1905ee303c8f2582103e05af12e169f6b076ed520fa68ab7a0283ba4e"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-NOVEL",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-NOVEL",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Novel",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Novel",
          "source_headline": "Policy timing can dominate a market day even when the policies act through different channels.",
          "source_question": "What is easy to miss when several policy shocks arrive together?",
          "source_market_connection": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "2dea57ebb50745b3f18ba0f89d09086a7ff973178a93591269e94ee9fbb61fb7",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Novel",
          "current_headline": "The timing of government decisions can shape a market day even when each decision works in a different way.",
          "current_question": "What is easy to miss when several government decisions arrive together?",
          "current_market_connection": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "1d9c9707e86b610d1d8e0b242967e4f6cad58513e2d67cb67964fbad61c3dc09",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids",
              "watch_conditions"
            ],
            "question": {
              "changed": true,
              "prior": "What is easy to miss when several policy shocks arrive together?",
              "current": "What is easy to miss when several government decisions arrive together?"
            },
            "headline": {
              "changed": true,
              "prior": "Policy timing can dominate a market day even when the policies act through different channels.",
              "current": "The timing of government decisions can shape a market day even when each decision works in a different way."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the short-term danger of military action. Another confirmed that two governments acted together in a major currency. Both can force choices before slower economic reports arrive.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The easy-to-miss lesson is that the same fall in oil can have two real causes: lower war fears and more expected supply. OTR keeps them separate because different later events could prove each one wrong."
              ],
              "removed": [
                "TODAY.com reported “Trump Calls for Pause on Military Strikes Against Iran.” finance.yahoo.com reported “Japan confirms joint yen intervention with US, signals readiness for more action.” One report changed the near-term path of military risk; another confirmed coordinated official action in a major currency. Both can force decisions before slow economic data catches up.",
                "Bloomberg.com reported “Oil Slumps, US Futures Rise on Iran Talks Optimism: Markets Wrap.” benzinga.com reported “Crude Oil Price Dives as OPEC+ Agrees to Another Supply Hike.” The non-obvious lesson is that the same oil move can carry both a demand-for-risk explanation and a supply explanation. A useful intelligence system must keep those causes separate because they imply different invalidation points."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Official words can move faster than economic reports",
                "Two correct explanations can exist together",
                "Different causes need different preparation"
              ],
              "removed_titles": [
                "Official words can move faster than economic releases",
                "Two correct explanations can coexist",
                "Different causes require different preparation"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.",
              "current": "The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting."
            },
            "watch_conditions": {
              "changed": false,
              "prior_count": 3,
              "current_count": 3,
              "added": [],
              "removed": [],
              "retained": [
                "Which oil driver persists",
                "Whether official currency action repeats",
                "Which decisions change before slow data arrives"
              ],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.",
              "current": "This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response."
            }
          },
          "similarities": [
            "Both records belong to the Novel canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged.",
            "The saved watch conditions is unchanged."
          ],
          "differences": [
            "Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
            "Headline changed from \"Policy timing can dominate a market day even when the policies act through different channels.\" to \"The timing of government decisions can shape a market day even when each decision works in a different way.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Official words can move faster than economic reports, Two correct explanations can exist together, Different causes need different preparation; removed Official words can move faster than economic releases, Two correct explanations can coexist, Different causes require different preparation.",
            "Market connection changed from \"The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.\" to \"The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.\".",
            "Invalidation condition changed from \"The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.\" to \"This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.\"."
          ],
          "comparison": "The Novel tab changed its question, headline, narrative, beat structure, market connection, and invalidation condition. Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\".",
          "difference": "Question changed from \"What is easy to miss when several policy shocks arrive together?\" to \"What is easy to miss when several government decisions arrive together?\". Headline changed from \"Policy timing can dominate a market day even when the policies act through different channels.\" to \"The timing of government decisions can shape a market day even when each decision works in a different way.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Official words can move faster than economic reports, Two correct explanations can exist together, Different causes need different preparation; removed Official words can move faster than economic releases, Two correct explanations can coexist, Different causes require different preparation. Market connection changed from \"The edge comes from separating causes early, then assigning a different trigger, owner and stop condition to each one.\" to \"The advantage comes from separating causes early, then giving each one its own warning sign, person in charge and reason to stop acting.\". Invalidation condition changed from \"The insight weakens if later evidence shows one reported policy did not occur or had no measurable market channel.\" to \"This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Novel",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "7547d8dc7a4757d92de34523ffcefa821b9e2ea71b73325ddc8a0f2905ba53f2",
          "comparison_receipt_sha256": "9e2ab726cb980a4ba70a9cec1c4c6ddb473e3818ec703780566a6b8076cadec9",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Which oil driver persists",
        "Whether official currency action repeats",
        "Which decisions change before slow data arrives"
      ],
      "invalidation": "This idea becomes weaker if later proof shows that one reported decision did not happen or did not cause a clear market response.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Tomorrow": {
      "eyebrow": "TOMORROW · AFTER 3 AUGUST 2026",
      "question": "What should we check next to support or change today's story?",
      "headline": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia.",
      "narrative": [
        "First, check whether planned strikes stay paused and whether talks lead to an official next step. Second, compare oil with both conflict news and actual OPEC+ supply, so a price reversal is not given the wrong cause.",
        "Third, check whether the yen keeps its move and whether the US or Japan plans more action. Wider Asian share-market swings were not proven before this edition closed, so later market data belongs in a clearly dated update or a new edition."
      ],
      "beats": [
        {
          "label": "NEXT HOURS",
          "title": "Does the Iran pause hold?",
          "body": "A fresh official step or renewed military action can change the war-risk path quickly.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "NEXT MARKET SESSION",
          "title": "Which cause still moves oil?",
          "body": "Compare oil with conflict news, actual OPEC+ supply and demand.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "ASIA CHECK",
          "title": "Did action on the yen change wider market choices?",
          "body": "Use later yen and Asian market reports. Do not place later news inside an earlier dated edition.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.",
      "history_echo": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\". This is background only. It compares the nearest earlier saved Tomorrow section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Tomorrow",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Tomorrow",
          "question": "What should we check next to support or change today's story?",
          "headline": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia.",
          "narrative": [
            "First, check whether planned strikes stay paused and whether talks lead to an official next step. Second, compare oil with both conflict news and actual OPEC+ supply, so a price reversal is not given the wrong cause.",
            "Third, check whether the yen keeps its move and whether the US or Japan plans more action. Wider Asian share-market swings were not proven before this edition closed, so later market data belongs in a clearly dated update or a new edition."
          ],
          "beats": [
            {
              "label": "NEXT HOURS",
              "title": "Does the Iran pause hold?",
              "body": "A fresh official step or renewed military action can change the war-risk path quickly.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "NEXT MARKET SESSION",
              "title": "Which cause still moves oil?",
              "body": "Compare oil with conflict news, actual OPEC+ supply and demand.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "ASIA CHECK",
              "title": "Did action on the yen change wider market choices?",
              "body": "Use later yen and Asian market reports. Do not place later news inside an earlier dated edition.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.",
          "watch_conditions": [
            "Official action on Iran",
            "Oil and actual OPEC+ supply",
            "The yen and wider Asian markets"
          ],
          "invalidation": "Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.",
          "content_sha256": "4db9c2d50cb8c432255c2677cb1b2d4c25e1f489b3482be765be1a1945719bec",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Tomorrow",
          "question": "Which observations can confirm or overturn today's story?",
          "headline": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
          "narrative": [
            "First, check whether military strikes remain paused and whether talks produce a dated official step. Second, compare crude with both conflict news and OPEC+ supply follow-through so a reversal is not forced into the wrong explanation.",
            "Third, check whether the yen keeps the intervention move and whether the US or Japan signals further action. Asian equity volatility was not directly established inside the original evidence cut, so later regional-market data belongs in a labelled since-lock update or a new edition."
          ],
          "beats": [
            {
              "label": "NEXT HOURS",
              "title": "Does the Iran pause hold?",
              "body": "A fresh official step or renewed military action can change the war-risk path quickly.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "NEXT SESSION",
              "title": "Which oil driver remains visible?",
              "body": "Compare crude with conflict developments, OPEC+ follow-through and demand evidence.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "ASIA CHECK",
              "title": "Did joint yen action change wider positioning?",
              "body": "Use post-cut yen, funding and regional-asset evidence; do not insert later observations into the earlier lock.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
          "watch_conditions": [
            "Official Iran action",
            "Crude and OPEC+ follow-through",
            "Yen, funding and Asian-asset response"
          ],
          "invalidation": "Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.",
          "content_sha256": "6b124a04f1a75b5b9b60fd630268ab26fa4ecfed41371aeb5a3ab589ca6a8e71",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "Which observations can confirm or overturn today's story?",
            "current": "What should we check next to support or change today's story?"
          },
          "headline": {
            "changed": true,
            "prior": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
            "current": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "First, check whether planned strikes stay paused and whether talks lead to an official next step. Second, compare oil with both conflict news and actual OPEC+ supply, so a price reversal is not given the wrong cause.",
              "Third, check whether the yen keeps its move and whether the US or Japan plans more action. Wider Asian share-market swings were not proven before this edition closed, so later market data belongs in a clearly dated update or a new edition."
            ],
            "removed": [
              "First, check whether military strikes remain paused and whether talks produce a dated official step. Second, compare crude with both conflict news and OPEC+ supply follow-through so a reversal is not forced into the wrong explanation.",
              "Third, check whether the yen keeps the intervention move and whether the US or Japan signals further action. Asian equity volatility was not directly established inside the original evidence cut, so later regional-market data belongs in a labelled since-lock update or a new edition."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "Which cause still moves oil?",
              "Did action on the yen change wider market choices?"
            ],
            "removed_titles": [
              "Which oil driver remains visible?",
              "Did joint yen action change wider positioning?"
            ],
            "retained_titles": [
              "Does the Iran pause hold?"
            ],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
            "current": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Official action on Iran",
              "Oil and actual OPEC+ supply",
              "The yen and wider Asian markets"
            ],
            "removed": [
              "Official Iran action",
              "Crude and OPEC+ follow-through",
              "Yen, funding and Asian-asset response"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.",
            "current": "Do not publish a follow-up when its time, source, market or link to the first event cannot be proved."
          }
        },
        "similarities": [
          "Both records belong to the Tomorrow canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
          "Headline changed from \"The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.\" to \"Next, check the strike pause, oil's two causes, the yen and the later response across Asia.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added Which cause still moves oil?, Did action on the yen change wider market choices?; removed Which oil driver remains visible?, Did joint yen action change wider positioning?.",
          "Market connection changed from \"Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.\" to \"Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.\" to \"Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Tomorrow",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "3e320d9dc279063e7bf40e6c14eb7e35ea88c016ee5966027a8877e6a72212a1",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "bacd4c23a9a35abfda3036c942767a3176ebccf7f36c28b211363b794d4eb477"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TOMORROW",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TOMORROW",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Tomorrow",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Tomorrow",
          "source_headline": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
          "source_question": "Which observations can confirm or overturn today's story?",
          "source_market_connection": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "6b124a04f1a75b5b9b60fd630268ab26fa4ecfed41371aeb5a3ab589ca6a8e71",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Tomorrow",
          "current_headline": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia.",
          "current_question": "What should we check next to support or change today's story?",
          "current_market_connection": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "4db9c2d50cb8c432255c2677cb1b2d4c25e1f489b3482be765be1a1945719bec",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which observations can confirm or overturn today's story?",
              "current": "What should we check next to support or change today's story?"
            },
            "headline": {
              "changed": true,
              "prior": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
              "current": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "First, check whether planned strikes stay paused and whether talks lead to an official next step. Second, compare oil with both conflict news and actual OPEC+ supply, so a price reversal is not given the wrong cause.",
                "Third, check whether the yen keeps its move and whether the US or Japan plans more action. Wider Asian share-market swings were not proven before this edition closed, so later market data belongs in a clearly dated update or a new edition."
              ],
              "removed": [
                "First, check whether military strikes remain paused and whether talks produce a dated official step. Second, compare crude with both conflict news and OPEC+ supply follow-through so a reversal is not forced into the wrong explanation.",
                "Third, check whether the yen keeps the intervention move and whether the US or Japan signals further action. Asian equity volatility was not directly established inside the original evidence cut, so later regional-market data belongs in a labelled since-lock update or a new edition."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Which cause still moves oil?",
                "Did action on the yen change wider market choices?"
              ],
              "removed_titles": [
                "Which oil driver remains visible?",
                "Did joint yen action change wider positioning?"
              ],
              "retained_titles": [
                "Does the Iran pause hold?"
              ],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
              "current": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Official action on Iran",
                "Oil and actual OPEC+ supply",
                "The yen and wider Asian markets"
              ],
              "removed": [
                "Official Iran action",
                "Crude and OPEC+ follow-through",
                "Yen, funding and Asian-asset response"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.",
              "current": "Do not publish a follow-up when its time, source, market or link to the first event cannot be proved."
            }
          },
          "similarities": [
            "Both records belong to the Tomorrow canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
            "Headline changed from \"The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.\" to \"Next, check the strike pause, oil's two causes, the yen and the later response across Asia.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Which cause still moves oil?, Did action on the yen change wider market choices?; removed Which oil driver remains visible?, Did joint yen action change wider positioning?.",
            "Market connection changed from \"Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.\" to \"Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.\" to \"Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.\"."
          ],
          "comparison": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
          "difference": "Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\". Headline changed from \"The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.\" to \"Next, check the strike pause, oil's two causes, the yen and the later response across Asia.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Which cause still moves oil?, Did action on the yen change wider market choices?; removed Which oil driver remains visible?, Did joint yen action change wider positioning?. Market connection changed from \"Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.\" to \"Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.\" to \"Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Tomorrow",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "3e320d9dc279063e7bf40e6c14eb7e35ea88c016ee5966027a8877e6a72212a1",
          "comparison_receipt_sha256": "bacd4c23a9a35abfda3036c942767a3176ebccf7f36c28b211363b794d4eb477",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "118b4edbc885b6a8a73a6f08d4b5971f9ff86b8fd13eddf01c2b868f4019fcbb",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "next",
            "check",
            "the",
            "strike",
            "pause",
            "oil",
            "two",
            "causes",
            "yen",
            "and",
            "later",
            "response",
            "across",
            "asia",
            "tomorrow",
            "job",
            "not",
            "repeat",
            "today",
            "headlines",
            "see",
            "lasts",
            "turns",
            "back",
            "wider",
            "results",
            "follow",
            "fresh",
            "time",
            "date",
            "first",
            "whether",
            "planned",
            "strikes",
            "stay",
            "paused",
            "talks",
            "lead",
            "official",
            "step",
            "second",
            "compare",
            "conflict",
            "actual",
            "opec",
            "supply",
            "price",
            "reversal",
            "given",
            "wrong",
            "cause",
            "third",
            "keeps",
            "its",
            "move",
            "japan",
            "plans",
            "action",
            "asian",
            "share",
            "market",
            "swings",
            "were",
            "proven",
            "edition",
            "closed",
            "data",
            "belongs",
            "clearly",
            "dated",
            "update",
            "new",
            "iran",
            "markets"
          ],
          "direction": "UNSTATED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-08-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-07-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-07-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-07-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT::TAB-07-TOMORROW"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT"
        ],
        "direction_counts": {
          "UP": 5,
          "DOWN": 0,
          "MIXED": 0,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-08-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Check official action, physical flow and completed prices before interpretation.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 329.693,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: tomorrow, check, update, and, official"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-07-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 268.7608,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: and, yen, next, tomorrow, update"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT::TAB-07-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 268.7608,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: and, yen, next, tomorrow, update"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT::TAB-07-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 268.7608,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: and, yen, next, tomorrow, update"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT::TAB-07-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 268.7608,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: and, yen, next, tomorrow, update"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "132a8fbac764e6228c1e9b30176a8ac954698b014f6a83af8231a6a13232af39"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TOMORROW",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-TOMORROW",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Tomorrow",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Tomorrow",
          "source_headline": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
          "source_question": "Which observations can confirm or overturn today's story?",
          "source_market_connection": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "6b124a04f1a75b5b9b60fd630268ab26fa4ecfed41371aeb5a3ab589ca6a8e71",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Tomorrow",
          "current_headline": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia.",
          "current_question": "What should we check next to support or change today's story?",
          "current_market_connection": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "4db9c2d50cb8c432255c2677cb1b2d4c25e1f489b3482be765be1a1945719bec",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Which observations can confirm or overturn today's story?",
              "current": "What should we check next to support or change today's story?"
            },
            "headline": {
              "changed": true,
              "prior": "The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.",
              "current": "Next, check the strike pause, oil's two causes, the yen and the later response across Asia."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "First, check whether planned strikes stay paused and whether talks lead to an official next step. Second, compare oil with both conflict news and actual OPEC+ supply, so a price reversal is not given the wrong cause.",
                "Third, check whether the yen keeps its move and whether the US or Japan plans more action. Wider Asian share-market swings were not proven before this edition closed, so later market data belongs in a clearly dated update or a new edition."
              ],
              "removed": [
                "First, check whether military strikes remain paused and whether talks produce a dated official step. Second, compare crude with both conflict news and OPEC+ supply follow-through so a reversal is not forced into the wrong explanation.",
                "Third, check whether the yen keeps the intervention move and whether the US or Japan signals further action. Asian equity volatility was not directly established inside the original evidence cut, so later regional-market data belongs in a labelled since-lock update or a new edition."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Which cause still moves oil?",
                "Did action on the yen change wider market choices?"
              ],
              "removed_titles": [
                "Which oil driver remains visible?",
                "Did joint yen action change wider positioning?"
              ],
              "retained_titles": [
                "Does the Iran pause hold?"
              ],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.",
              "current": "Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Official action on Iran",
                "Oil and actual OPEC+ supply",
                "The yen and wider Asian markets"
              ],
              "removed": [
                "Official Iran action",
                "Crude and OPEC+ follow-through",
                "Yen, funding and Asian-asset response"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.",
              "current": "Do not publish a follow-up when its time, source, market or link to the first event cannot be proved."
            }
          },
          "similarities": [
            "Both records belong to the Tomorrow canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
            "Headline changed from \"The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.\" to \"Next, check the strike pause, oil's two causes, the yen and the later response across Asia.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Which cause still moves oil?, Did action on the yen change wider market choices?; removed Which oil driver remains visible?, Did joint yen action change wider positioning?.",
            "Market connection changed from \"Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.\" to \"Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.\" to \"Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.\"."
          ],
          "comparison": "The Tomorrow tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\".",
          "difference": "Question changed from \"Which observations can confirm or overturn today's story?\" to \"What should we check next to support or change today's story?\". Headline changed from \"The next check must test the pause, oil's two drivers, yen follow-through and Asia's post-cut response.\" to \"Next, check the strike pause, oil's two causes, the yen and the later response across Asia.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Which cause still moves oil?, Did action on the yen change wider market choices?; removed Which oil driver remains visible?, Did joint yen action change wider positioning?. Market connection changed from \"Tomorrow's job is not to repeat today's headlines. It is to observe persistence, reversal and second-order effects with a fresh timestamp.\" to \"Tomorrow's job is not to repeat today's headlines. It is to see what lasts, what turns back and what wider results follow, using a fresh time and date.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Do not promote a follow-up when its timestamp, source, market venue or link to the original event cannot be proved.\" to \"Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Tomorrow",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "3e320d9dc279063e7bf40e6c14eb7e35ea88c016ee5966027a8877e6a72212a1",
          "comparison_receipt_sha256": "bacd4c23a9a35abfda3036c942767a3176ebccf7f36c28b211363b794d4eb477",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Official action on Iran",
        "Oil and actual OPEC+ supply",
        "The yen and wider Asian markets"
      ],
      "invalidation": "Do not publish a follow-up when its time, source, market or link to the first event cannot be proved.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Learning": {
      "eyebrow": "LEARNING · 3 AUGUST 2026 RUN",
      "question": "What should OTR learn from the corrected story order?",
      "headline": "Collecting an important signal is not enough; the main story must promote it.",
      "narrative": [
        "All 73/73 search areas completed their work, finding 584 current signals from 566 direct links and 384 websites. The weakness was the order: the first valid report in a search list is not always the news that matters most.",
        "The corrected method puts current reports first when they have greater impact, urgency, reach across markets and a clear result to watch. It keeps the original daily records, prediction rules and results unchanged, so a better story order does not rewrite history."
      ],
      "beats": [
        {
          "label": "PUT FIRST",
          "title": "Important events must reach the main story",
          "body": "The Iran pause, oil move and yen action mattered more to current choices than the first valid items in the earlier search order.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "EXPLAIN",
          "title": "The order needs a clear reason",
          "body": "Each Big Three item now says why it matters, what other cause may exist and what stronger news could replace it.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "KEEP HISTORY",
          "title": "A story repair must not change the facts",
          "body": "The new story replaces the old front page, while the daily records, prediction rules and source times stay fixed.",
          "source_ids": [
            "LOCAL-CURRENT",
            "TECH-CURRENT"
          ]
        }
      ],
      "market_connection": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.",
      "history_echo": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\". This is background only. It compares the nearest earlier saved Learning section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Learning",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Learning",
          "question": "What should OTR learn from the corrected story order?",
          "headline": "Collecting an important signal is not enough; the main story must promote it.",
          "narrative": [
            "All 73/73 search areas completed their work, finding 584 current signals from 566 direct links and 384 websites. The weakness was the order: the first valid report in a search list is not always the news that matters most.",
            "The corrected method puts current reports first when they have greater impact, urgency, reach across markets and a clear result to watch. It keeps the original daily records, prediction rules and results unchanged, so a better story order does not rewrite history."
          ],
          "beats": [
            {
              "label": "PUT FIRST",
              "title": "Important events must reach the main story",
              "body": "The Iran pause, oil move and yen action mattered more to current choices than the first valid items in the earlier search order.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "EXPLAIN",
              "title": "The order needs a clear reason",
              "body": "Each Big Three item now says why it matters, what other cause may exist and what stronger news could replace it.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "KEEP HISTORY",
              "title": "A story repair must not change the facts",
              "body": "The new story replaces the old front page, while the daily records, prediction rules and source times stay fixed.",
              "source_ids": [
                "LOCAL-CURRENT",
                "TECH-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.",
          "watch_conditions": [
            "Whether the lead picks match the most important news",
            "Whether other possible views remain visible",
            "Whether later editions still need a person to change the order"
          ],
          "invalidation": "Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.",
          "content_sha256": "532c9f9350e1369e7e0d580a521ff9bbe6ced7fa50f60e997aa37b1896b8942b",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Learning",
          "question": "What should the system learn from this corrected editorial order?",
          "headline": "Collecting an important signal is not enough; the main story must promote it.",
          "narrative": [
            "The collection succeeded across 73/73 engines with 584 source-linked signals, 566 direct URLs and 384 domains. The missed value was in ranking: the first source in an engine list is not always the most material event.",
            "The corrected selector ranks current direct evidence by material impact, urgency, cross-market reach and a visible consequence. It still keeps the original daily ledger, prediction terms and outcomes unchanged, so better editorial judgement does not rewrite history."
          ],
          "beats": [
            {
              "label": "PROMOTE",
              "title": "Material events must reach the lead story",
              "body": "The strike-pause, oil and yen cluster had stronger decision impact than the first qualifying rows in earlier engine order.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "EXPLAIN",
              "title": "Ranking needs a human-readable reason",
              "body": "Each Big Three item now states why it matters, its competing explanation and what can overtake it.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "PRESERVE",
              "title": "Editorial repair does not change canonical facts",
              "body": "The correction supersedes the story while the daily release, prediction contracts and source timestamps stay fixed.",
              "source_ids": [
                "LOCAL-CURRENT",
                "TECH-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "TECH-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
          "watch_conditions": [
            "Whether lead picks match material cross-engine events",
            "Whether counter-cases remain visible",
            "Whether later editions need manual reorder"
          ],
          "invalidation": "Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.",
          "content_sha256": "523a4db80a27d0637f287c50a79f1cb1d9506823ed5318c0d27d179678b0db80",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "headline",
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "What should the system learn from this corrected editorial order?",
            "current": "What should OTR learn from the corrected story order?"
          },
          "headline": {
            "changed": false,
            "prior": "Collecting an important signal is not enough; the main story must promote it.",
            "current": "Collecting an important signal is not enough; the main story must promote it."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "All 73/73 search areas completed their work, finding 584 current signals from 566 direct links and 384 websites. The weakness was the order: the first valid report in a search list is not always the news that matters most.",
              "The corrected method puts current reports first when they have greater impact, urgency, reach across markets and a clear result to watch. It keeps the original daily records, prediction rules and results unchanged, so a better story order does not rewrite history."
            ],
            "removed": [
              "The collection succeeded across 73/73 engines with 584 source-linked signals, 566 direct URLs and 384 domains. The missed value was in ranking: the first source in an engine list is not always the most material event.",
              "The corrected selector ranks current direct evidence by material impact, urgency, cross-market reach and a visible consequence. It still keeps the original daily ledger, prediction terms and outcomes unchanged, so better editorial judgement does not rewrite history."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "Important events must reach the main story",
              "The order needs a clear reason",
              "A story repair must not change the facts"
            ],
            "removed_titles": [
              "Material events must reach the lead story",
              "Ranking needs a human-readable reason",
              "Editorial repair does not change canonical facts"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 6,
            "current_count": 6,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "LOCAL-CURRENT",
              "MARKET-CURRENT",
              "TECH-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
            "current": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "Whether the lead picks match the most important news",
              "Whether other possible views remain visible",
              "Whether later editions still need a person to change the order"
            ],
            "removed": [
              "Whether lead picks match material cross-engine events",
              "Whether counter-cases remain visible",
              "Whether later editions need manual reorder"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.",
            "current": "Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources."
          }
        },
        "similarities": [
          "Both records belong to the Learning canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved headline is unchanged.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added Important events must reach the main story, The order needs a clear reason, A story repair must not change the facts; removed Material events must reach the lead story, Ranking needs a human-readable reason, Editorial repair does not change canonical facts.",
          "Market connection changed from \"Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.\" to \"The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.\" to \"Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Learning",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "0cad1b703623eeca9891adb8b8de211fa7a1705e6da871a18c7b1fc078d4c17a",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "fb15f15946c3252ad365939f61dbed6661ea30f0b09b6514b9aefb62e0061d70"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LEARNING",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LEARNING",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Learning",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Learning",
          "source_headline": "Collecting an important signal is not enough; the main story must promote it.",
          "source_question": "What should the system learn from this corrected editorial order?",
          "source_market_connection": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "523a4db80a27d0637f287c50a79f1cb1d9506823ed5318c0d27d179678b0db80",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Learning",
          "current_headline": "Collecting an important signal is not enough; the main story must promote it.",
          "current_question": "What should OTR learn from the corrected story order?",
          "current_market_connection": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "532c9f9350e1369e7e0d580a521ff9bbe6ced7fa50f60e997aa37b1896b8942b",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "headline",
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "What should the system learn from this corrected editorial order?",
              "current": "What should OTR learn from the corrected story order?"
            },
            "headline": {
              "changed": false,
              "prior": "Collecting an important signal is not enough; the main story must promote it.",
              "current": "Collecting an important signal is not enough; the main story must promote it."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "All 73/73 search areas completed their work, finding 584 current signals from 566 direct links and 384 websites. The weakness was the order: the first valid report in a search list is not always the news that matters most.",
                "The corrected method puts current reports first when they have greater impact, urgency, reach across markets and a clear result to watch. It keeps the original daily records, prediction rules and results unchanged, so a better story order does not rewrite history."
              ],
              "removed": [
                "The collection succeeded across 73/73 engines with 584 source-linked signals, 566 direct URLs and 384 domains. The missed value was in ranking: the first source in an engine list is not always the most material event.",
                "The corrected selector ranks current direct evidence by material impact, urgency, cross-market reach and a visible consequence. It still keeps the original daily ledger, prediction terms and outcomes unchanged, so better editorial judgement does not rewrite history."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Important events must reach the main story",
                "The order needs a clear reason",
                "A story repair must not change the facts"
              ],
              "removed_titles": [
                "Material events must reach the lead story",
                "Ranking needs a human-readable reason",
                "Editorial repair does not change canonical facts"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
              "current": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Whether the lead picks match the most important news",
                "Whether other possible views remain visible",
                "Whether later editions still need a person to change the order"
              ],
              "removed": [
                "Whether lead picks match material cross-engine events",
                "Whether counter-cases remain visible",
                "Whether later editions need manual reorder"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.",
              "current": "Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources."
            }
          },
          "similarities": [
            "Both records belong to the Learning canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved headline is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Important events must reach the main story, The order needs a clear reason, A story repair must not change the facts; removed Material events must reach the lead story, Ranking needs a human-readable reason, Editorial repair does not change canonical facts.",
            "Market connection changed from \"Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.\" to \"The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.\" to \"Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.\"."
          ],
          "comparison": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
          "difference": "Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Important events must reach the main story, The order needs a clear reason, A story repair must not change the facts; removed Material events must reach the lead story, Ranking needs a human-readable reason, Editorial repair does not change canonical facts. Market connection changed from \"Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.\" to \"The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.\" to \"Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Learning",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "0cad1b703623eeca9891adb8b8de211fa7a1705e6da871a18c7b1fc078d4c17a",
          "comparison_receipt_sha256": "fb15f15946c3252ad365939f61dbed6661ea30f0b09b6514b9aefb62e0061d70",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "17a34ebc3023e8a559734449d5e8a9e2c285c0070c7d69d83c902b653febb761",
        "query_concepts": {
          "entities": [],
          "events": [],
          "terms": [
            "collecting",
            "important",
            "not",
            "enough",
            "the",
            "main",
            "story",
            "must",
            "promote",
            "order",
            "changed",
            "but",
            "saved",
            "facts",
            "did",
            "future",
            "editions",
            "show",
            "new",
            "rule",
            "brings",
            "useful",
            "forward",
            "without",
            "hiding",
            "doubt",
            "all",
            "search",
            "areas",
            "completed",
            "work",
            "finding",
            "direct",
            "links",
            "and",
            "websites",
            "weakness",
            "was",
            "first",
            "valid",
            "list",
            "always",
            "matters",
            "corrected",
            "method",
            "puts",
            "greater",
            "impact",
            "urgency",
            "reach",
            "across",
            "markets",
            "clear",
            "result",
            "watch",
            "keeps",
            "original",
            "records",
            "prediction",
            "rules",
            "results",
            "unchanged",
            "better",
            "rewrite",
            "history",
            "whether",
            "lead",
            "picks",
            "match",
            "possible",
            "views",
            "remain",
            "visible",
            "later",
            "still",
            "need",
            "person",
            "change"
          ],
          "direction": "UNSTATED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-04-PREDICTIONS",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-02-EVERYTHING",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-08-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-08-TOMORROW",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-08-TOMORROW"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT"
        ],
        "direction_counts": {
          "UP": 3,
          "DOWN": 0,
          "MIXED": 2,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT::TAB-04-PREDICTIONS",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
            "date": "2026-07-31",
            "title": "No automatic trade: the edition creates watch conditions.",
            "engine": null,
            "tab": "Predictions",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 179.9068,
            "why": [
              "shared terms: prediction, watch, the, change, not"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-02-EVERYTHING",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "All 659 published signals are visible before the AI draws a conclusion.",
            "engine": null,
            "tab": "Everything",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [],
            "matched_events": [],
            "score": 176.8653,
            "why": [
              "shared terms: story, and, order, the, visible"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-08-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 165.4396,
            "why": [
              "shared terms: story, and, order, whether, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-08-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 165.4396,
            "why": [
              "shared terms: story, and, order, whether, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-08-TOMORROW",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
            "date": "2026-07-31",
            "title": "Confirm the yen story, then follow rates, credit and delivery.",
            "engine": null,
            "tab": "Tomorrow",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [],
            "matched_events": [],
            "score": 165.4396,
            "why": [
              "shared terms: story, and, order, whether, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "29fbca1057979bfa71522ee48c35efb7aac678d380994545678daca5b3216b72"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LEARNING",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-LEARNING",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Learning",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Learning",
          "source_headline": "Collecting an important signal is not enough; the main story must promote it.",
          "source_question": "What should the system learn from this corrected editorial order?",
          "source_market_connection": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "523a4db80a27d0637f287c50a79f1cb1d9506823ed5318c0d27d179678b0db80",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Learning",
          "current_headline": "Collecting an important signal is not enough; the main story must promote it.",
          "current_question": "What should OTR learn from the corrected story order?",
          "current_market_connection": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "532c9f9350e1369e7e0d580a521ff9bbe6ced7fa50f60e997aa37b1896b8942b",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "headline",
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "What should the system learn from this corrected editorial order?",
              "current": "What should OTR learn from the corrected story order?"
            },
            "headline": {
              "changed": false,
              "prior": "Collecting an important signal is not enough; the main story must promote it.",
              "current": "Collecting an important signal is not enough; the main story must promote it."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "All 73/73 search areas completed their work, finding 584 current signals from 566 direct links and 384 websites. The weakness was the order: the first valid report in a search list is not always the news that matters most.",
                "The corrected method puts current reports first when they have greater impact, urgency, reach across markets and a clear result to watch. It keeps the original daily records, prediction rules and results unchanged, so a better story order does not rewrite history."
              ],
              "removed": [
                "The collection succeeded across 73/73 engines with 584 source-linked signals, 566 direct URLs and 384 domains. The missed value was in ranking: the first source in an engine list is not always the most material event.",
                "The corrected selector ranks current direct evidence by material impact, urgency, cross-market reach and a visible consequence. It still keeps the original daily ledger, prediction terms and outcomes unchanged, so better editorial judgement does not rewrite history."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "Important events must reach the main story",
                "The order needs a clear reason",
                "A story repair must not change the facts"
              ],
              "removed_titles": [
                "Material events must reach the lead story",
                "Ranking needs a human-readable reason",
                "Editorial repair does not change canonical facts"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "TECH-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.",
              "current": "The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "Whether the lead picks match the most important news",
                "Whether other possible views remain visible",
                "Whether later editions still need a person to change the order"
              ],
              "removed": [
                "Whether lead picks match material cross-engine events",
                "Whether counter-cases remain visible",
                "Whether later editions need manual reorder"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.",
              "current": "Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources."
            }
          },
          "similarities": [
            "Both records belong to the Learning canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved headline is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added Important events must reach the main story, The order needs a clear reason, A story repair must not change the facts; removed Material events must reach the lead story, Ranking needs a human-readable reason, Editorial repair does not change canonical facts.",
            "Market connection changed from \"Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.\" to \"The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.\" to \"Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.\"."
          ],
          "comparison": "The Learning tab changed its question, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\".",
          "difference": "Question changed from \"What should the system learn from this corrected editorial order?\" to \"What should OTR learn from the corrected story order?\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added Important events must reach the main story, The order needs a clear reason, A story repair must not change the facts; removed Material events must reach the lead story, Ranking needs a human-readable reason, Editorial repair does not change canonical facts. Market connection changed from \"Learning state: editorial order changed, canonical truth did not. Future releases must prove that the new ranking rule improves relevance without hiding uncertainty.\" to \"The story order changed, but the saved facts did not. Future editions must show that the new rule brings more useful news forward without hiding doubt.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Roll back the ranking change if later true-time editions repeatedly demote more material verified events or lose source diversity.\" to \"Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Learning",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "0cad1b703623eeca9891adb8b8de211fa7a1705e6da871a18c7b1fc078d4c17a",
          "comparison_receipt_sha256": "fb15f15946c3252ad365939f61dbed6661ea30f0b09b6514b9aefb62e0061d70",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "Whether the lead picks match the most important news",
        "Whether other possible views remain visible",
        "Whether later editions still need a person to change the order"
      ],
      "invalidation": "Remove the new ranking rule if later editions keep pushing more important proven news down or use too few different sources.",
      "learning_status": "EVIDENCE_GATE_PASSED - PREDICTION_STATES_UNCHANGED - ENGINE_WEIGHTS_UNCHANGED",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Glossary": {
      "eyebrow": "GLOSSARY · 3 AUGUST 2026",
      "question": "What do the key words in today's main story mean?",
      "headline": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.",
      "narrative": [
        "A pause means a reported stop for now, not a permanent end to conflict. Hope for talks describes the mood in the named market report, not a final deal. Action on the yen means governments bought or sold in the currency market; it does not promise a lasting exchange-rate move.",
        "More oil supply can push prices down even without progress in talks. Later proof means a report that appeared after this edition closed. It may support a clearly dated update or a new edition, but it cannot be quietly placed inside the earlier record."
      ],
      "beats": [
        {
          "label": "PAUSE",
          "title": "A stop for now that can end",
          "body": "New military action would end the pause even if talks continue.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT"
          ]
        },
        {
          "label": "TWO CAUSES",
          "title": "Talks and supply can both affect oil",
          "body": "The market report and the OPEC+ report support different parts of the explanation.",
          "source_ids": [
            "MARKET-CURRENT",
            "ENERGY-CURRENT"
          ]
        },
        {
          "label": "ACTION ON THE YEN",
          "title": "Government action changes the risk of one-sided bets",
          "body": "We must check what happens after the first response. The headline alone cannot prove success.",
          "source_ids": [
            "FINANCE-CURRENT",
            "MARKET-CURRENT"
          ]
        }
      ],
      "market_connection": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.",
      "history_echo": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\". This is background only. It compares the nearest earlier saved Glossary section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Glossary",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Glossary",
          "question": "What do the key words in today's main story mean?",
          "headline": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.",
          "narrative": [
            "A pause means a reported stop for now, not a permanent end to conflict. Hope for talks describes the mood in the named market report, not a final deal. Action on the yen means governments bought or sold in the currency market; it does not promise a lasting exchange-rate move.",
            "More oil supply can push prices down even without progress in talks. Later proof means a report that appeared after this edition closed. It may support a clearly dated update or a new edition, but it cannot be quietly placed inside the earlier record."
          ],
          "beats": [
            {
              "label": "PAUSE",
              "title": "A stop for now that can end",
              "body": "New military action would end the pause even if talks continue.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "TWO CAUSES",
              "title": "Talks and supply can both affect oil",
              "body": "The market report and the OPEC+ report support different parts of the explanation.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "ACTION ON THE YEN",
              "title": "Government action changes the risk of one-sided bets",
              "body": "We must check what happens after the first response. The headline alone cannot prove success.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.",
          "watch_conditions": [
            "A temporary change described as permanent",
            "One cause used for a move with several causes",
            "Later facts placed inside an earlier edition"
          ],
          "invalidation": "Correct any word when later proof shows that it says more than the source, time period or result allows.",
          "content_sha256": "8daa561467e970972462d7d8adc6078d233a97000b323d006adfd27c65e1fd41",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Glossary",
          "question": "What do the key words in today's main story mean?",
          "headline": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
          "narrative": [
            "Pause means a reported stop for now, not a permanent end to conflict. Talks optimism describes the market explanation in the cited report, not a final agreement. Intervention means official action in a currency market; it does not guarantee a lasting exchange-rate direction.",
            "A supply increase can pressure oil independently of diplomacy. Since-lock evidence means a source observed or published after the original cut; it may support a labelled update or a new edition, but it cannot be inserted silently into the earlier evidence window."
          ],
          "beats": [
            {
              "label": "PAUSE",
              "title": "A temporary state with a clear reversal condition",
              "body": "Renewed military action would end the state even if talks continue.",
              "source_ids": [
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "TWO DRIVERS",
              "title": "Diplomacy and supply can both affect oil",
              "body": "The market report and OPEC+ report support different parts of the explanation.",
              "source_ids": [
                "ENERGY-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "INTERVENTION",
              "title": "Official action changes positioning risk",
              "body": "Persistence must be measured after the first response; the headline alone cannot settle its success.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
          "watch_conditions": [
            "Temporary states described as permanent",
            "One-cause explanations for multi-cause moves",
            "Post-cut facts placed inside the lock"
          ],
          "invalidation": "Correct any label when later evidence shows it overstates the source, time window or observed outcome.",
          "content_sha256": "3f0264c084fbce7914031f743cc7c690d25d17589e9a8e39283005c4dfbf0952",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
        "content_changes": {
          "changed_fields": [
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "question",
            "source_ids"
          ],
          "question": {
            "changed": false,
            "prior": "What do the key words in today's main story mean?",
            "current": "What do the key words in today's main story mean?"
          },
          "headline": {
            "changed": true,
            "prior": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
            "current": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "A pause means a reported stop for now, not a permanent end to conflict. Hope for talks describes the mood in the named market report, not a final deal. Action on the yen means governments bought or sold in the currency market; it does not promise a lasting exchange-rate move.",
              "More oil supply can push prices down even without progress in talks. Later proof means a report that appeared after this edition closed. It may support a clearly dated update or a new edition, but it cannot be quietly placed inside the earlier record."
            ],
            "removed": [
              "Pause means a reported stop for now, not a permanent end to conflict. Talks optimism describes the market explanation in the cited report, not a final agreement. Intervention means official action in a currency market; it does not guarantee a lasting exchange-rate direction.",
              "A supply increase can pressure oil independently of diplomacy. Since-lock evidence means a source observed or published after the original cut; it may support a labelled update or a new edition, but it cannot be inserted silently into the earlier evidence window."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "A stop for now that can end",
              "Talks and supply can both affect oil",
              "Government action changes the risk of one-sided bets"
            ],
            "removed_titles": [
              "A temporary state with a clear reversal condition",
              "Diplomacy and supply can both affect oil",
              "Official action changes positioning risk"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 4,
            "current_count": 4,
            "added": [],
            "removed": [],
            "retained": [
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
            "current": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "A temporary change described as permanent",
              "One cause used for a move with several causes",
              "Later facts placed inside an earlier edition"
            ],
            "removed": [
              "Temporary states described as permanent",
              "One-cause explanations for multi-cause moves",
              "Post-cut facts placed inside the lock"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Correct any label when later evidence shows it overstates the source, time window or observed outcome.",
            "current": "Correct any word when later proof shows that it says more than the source, time period or result allows."
          }
        },
        "similarities": [
          "Both records belong to the Glossary canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved question is unchanged.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added A stop for now that can end, Talks and supply can both affect oil, Government action changes the risk of one-sided bets; removed A temporary state with a clear reversal condition, Diplomacy and supply can both affect oil, Official action changes positioning risk.",
          "Market connection changed from \"Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.\" to \"Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Correct any label when later evidence shows it overstates the source, time window or observed outcome.\" to \"Correct any word when later proof shows that it says more than the source, time period or result allows.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Glossary",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "cc6d187a6ac4468b4ce5cc0856c0c0dd0d7738f0f2a71fb786c53c77c65738ca",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "53e0e3cdf04163ddc9b4ae19e51bb2caf28f2c8fac27169d63feddef58aff66e"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-GLOSSARY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-GLOSSARY",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Glossary",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Glossary",
          "source_headline": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
          "source_question": "What do the key words in today's main story mean?",
          "source_market_connection": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "3f0264c084fbce7914031f743cc7c690d25d17589e9a8e39283005c4dfbf0952",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Glossary",
          "current_headline": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.",
          "current_question": "What do the key words in today's main story mean?",
          "current_market_connection": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "8daa561467e970972462d7d8adc6078d233a97000b323d006adfd27c65e1fd41",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What do the key words in today's main story mean?",
              "current": "What do the key words in today's main story mean?"
            },
            "headline": {
              "changed": true,
              "prior": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
              "current": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "A pause means a reported stop for now, not a permanent end to conflict. Hope for talks describes the mood in the named market report, not a final deal. Action on the yen means governments bought or sold in the currency market; it does not promise a lasting exchange-rate move.",
                "More oil supply can push prices down even without progress in talks. Later proof means a report that appeared after this edition closed. It may support a clearly dated update or a new edition, but it cannot be quietly placed inside the earlier record."
              ],
              "removed": [
                "Pause means a reported stop for now, not a permanent end to conflict. Talks optimism describes the market explanation in the cited report, not a final agreement. Intervention means official action in a currency market; it does not guarantee a lasting exchange-rate direction.",
                "A supply increase can pressure oil independently of diplomacy. Since-lock evidence means a source observed or published after the original cut; it may support a labelled update or a new edition, but it cannot be inserted silently into the earlier evidence window."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A stop for now that can end",
                "Talks and supply can both affect oil",
                "Government action changes the risk of one-sided bets"
              ],
              "removed_titles": [
                "A temporary state with a clear reversal condition",
                "Diplomacy and supply can both affect oil",
                "Official action changes positioning risk"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
              "current": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "A temporary change described as permanent",
                "One cause used for a move with several causes",
                "Later facts placed inside an earlier edition"
              ],
              "removed": [
                "Temporary states described as permanent",
                "One-cause explanations for multi-cause moves",
                "Post-cut facts placed inside the lock"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Correct any label when later evidence shows it overstates the source, time window or observed outcome.",
              "current": "Correct any word when later proof shows that it says more than the source, time period or result allows."
            }
          },
          "similarities": [
            "Both records belong to the Glossary canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A stop for now that can end, Talks and supply can both affect oil, Government action changes the risk of one-sided bets; removed A temporary state with a clear reversal condition, Diplomacy and supply can both affect oil, Official action changes positioning risk.",
            "Market connection changed from \"Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.\" to \"Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Correct any label when later evidence shows it overstates the source, time window or observed outcome.\" to \"Correct any word when later proof shows that it says more than the source, time period or result allows.\"."
          ],
          "comparison": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
          "difference": "Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A stop for now that can end, Talks and supply can both affect oil, Government action changes the risk of one-sided bets; removed A temporary state with a clear reversal condition, Diplomacy and supply can both affect oil, Official action changes positioning risk. Market connection changed from \"Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.\" to \"Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Correct any label when later evidence shows it overstates the source, time window or observed outcome.\" to \"Correct any word when later proof shows that it says more than the source, time period or result allows.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Glossary",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "cc6d187a6ac4468b4ce5cc0856c0c0dd0d7738f0f2a71fb786c53c77c65738ca",
          "comparison_receipt_sha256": "53e0e3cdf04163ddc9b4ae19e51bb2caf28f2c8fac27169d63feddef58aff66e",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "4ba89c1c3c6ae409e53d98af6fb72d2f04116d286cb30ec6602515ae933f2581",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            },
            {
              "id": "ENERGY_SUPPLY",
              "label": "Energy and supply"
            }
          ],
          "terms": [
            "pause",
            "hope",
            "for",
            "talks",
            "action",
            "currency",
            "supply",
            "and",
            "later",
            "proof",
            "not",
            "mean",
            "the",
            "same",
            "thing",
            "clear",
            "words",
            "protect",
            "story",
            "show",
            "changed",
            "may",
            "caused",
            "has",
            "yet",
            "proved",
            "means",
            "stop",
            "now",
            "permanent",
            "end",
            "conflict",
            "describes",
            "mood",
            "named",
            "market",
            "final",
            "deal",
            "yen",
            "governments",
            "bought",
            "sold",
            "promise",
            "lasting",
            "exchange",
            "rate",
            "move",
            "oil",
            "can",
            "push",
            "prices",
            "down",
            "even",
            "without",
            "progress",
            "appeared",
            "edition",
            "closed",
            "support",
            "clearly",
            "dated",
            "update",
            "new",
            "but",
            "cannot",
            "quietly",
            "placed",
            "inside",
            "earlier",
            "record",
            "temporary",
            "change",
            "described",
            "one",
            "cause",
            "used",
            "several",
            "causes",
            "facts"
          ],
          "direction": "DOWN"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 273.9649,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, proof, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 273.9649,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, proof, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 273.9649,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, proof, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 265.7075,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, story, oil, proof, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 255.4509,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, oil, and, proof"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "d0cb449661dc8e4da43416739af3cb3c622170eef2f643cef9aa043196b18c0f"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-GLOSSARY",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-GLOSSARY",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Glossary",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Glossary",
          "source_headline": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
          "source_question": "What do the key words in today's main story mean?",
          "source_market_connection": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "3f0264c084fbce7914031f743cc7c690d25d17589e9a8e39283005c4dfbf0952",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Glossary",
          "current_headline": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.",
          "current_question": "What do the key words in today's main story mean?",
          "current_market_connection": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "8daa561467e970972462d7d8adc6078d233a97000b323d006adfd27c65e1fd41",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
          "content_changes": {
            "changed_fields": [
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "question",
              "source_ids"
            ],
            "question": {
              "changed": false,
              "prior": "What do the key words in today's main story mean?",
              "current": "What do the key words in today's main story mean?"
            },
            "headline": {
              "changed": true,
              "prior": "Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.",
              "current": "A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "A pause means a reported stop for now, not a permanent end to conflict. Hope for talks describes the mood in the named market report, not a final deal. Action on the yen means governments bought or sold in the currency market; it does not promise a lasting exchange-rate move.",
                "More oil supply can push prices down even without progress in talks. Later proof means a report that appeared after this edition closed. It may support a clearly dated update or a new edition, but it cannot be quietly placed inside the earlier record."
              ],
              "removed": [
                "Pause means a reported stop for now, not a permanent end to conflict. Talks optimism describes the market explanation in the cited report, not a final agreement. Intervention means official action in a currency market; it does not guarantee a lasting exchange-rate direction.",
                "A supply increase can pressure oil independently of diplomacy. Since-lock evidence means a source observed or published after the original cut; it may support a labelled update or a new edition, but it cannot be inserted silently into the earlier evidence window."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "A stop for now that can end",
                "Talks and supply can both affect oil",
                "Government action changes the risk of one-sided bets"
              ],
              "removed_titles": [
                "A temporary state with a clear reversal condition",
                "Diplomacy and supply can both affect oil",
                "Official action changes positioning risk"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 4,
              "current_count": 4,
              "added": [],
              "removed": [],
              "retained": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.",
              "current": "Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "A temporary change described as permanent",
                "One cause used for a move with several causes",
                "Later facts placed inside an earlier edition"
              ],
              "removed": [
                "Temporary states described as permanent",
                "One-cause explanations for multi-cause moves",
                "Post-cut facts placed inside the lock"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Correct any label when later evidence shows it overstates the source, time window or observed outcome.",
              "current": "Correct any word when later proof shows that it says more than the source, time period or result allows."
            }
          },
          "similarities": [
            "Both records belong to the Glossary canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved question is unchanged.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added A stop for now that can end, Talks and supply can both affect oil, Government action changes the risk of one-sided bets; removed A temporary state with a clear reversal condition, Diplomacy and supply can both affect oil, Official action changes positioning risk.",
            "Market connection changed from \"Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.\" to \"Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Correct any label when later evidence shows it overstates the source, time window or observed outcome.\" to \"Correct any word when later proof shows that it says more than the source, time period or result allows.\"."
          ],
          "comparison": "The Glossary tab changed its headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\".",
          "difference": "Headline changed from \"Pause, talks optimism, intervention, supply increase and since-lock evidence are not interchangeable.\" to \"A pause, hope for talks, action on a currency, more supply and later proof do not mean the same thing.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added A stop for now that can end, Talks and supply can both affect oil, Government action changes the risk of one-sided bets; removed A temporary state with a clear reversal condition, Diplomacy and supply can both affect oil, Official action changes positioning risk. Market connection changed from \"Clear words protect the analysis: they show which condition changed, which cause is inferred and which outcome remains unproved.\" to \"Clear words protect the story. They show what changed, what may have caused it and what has not yet been proved.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Correct any label when later evidence shows it overstates the source, time window or observed outcome.\" to \"Correct any word when later proof shows that it says more than the source, time period or result allows.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Glossary",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "cc6d187a6ac4468b4ce5cc0856c0c0dd0d7738f0f2a71fb786c53c77c65738ca",
          "comparison_receipt_sha256": "53e0e3cdf04163ddc9b4ae19e51bb2caf28f2c8fac27169d63feddef58aff66e",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "A temporary change described as permanent",
        "One cause used for a move with several causes",
        "Later facts placed inside an earlier edition"
      ],
      "invalidation": "Correct any word when later proof shows that it says more than the source, time period or result allows.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    },
    "Proof": {
      "eyebrow": "PROOF · 3 AUGUST 2026",
      "question": "Can every main claim in the corrected 3/8/26 story be checked?",
      "headline": "Every main claim links to a current named report from today's saved edition.",
      "narrative": [
        "The corrected story uses the same 09:54 SGT closing time, 584 current reports, 566 direct links and 384 websites. The Iran, oil, OPEC+ and yen reports were all already inside today's saved edition.",
        "The correction changes only the order and explanation. The earlier story remains saved. The daily reports, prediction rules, later price checks and past results remain unchanged."
      ],
      "beats": [
        {
          "label": "MAIN FACTS",
          "title": "The four main reports can be opened",
          "body": "Readers can open the sources on the Iran pause, oil, OPEC+ and joint action on the yen.",
          "source_ids": [
            "WORLD-CURRENT",
            "MARKET-CURRENT",
            "ENERGY-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "LIMIT",
          "title": "Weak claims stay outside this edition",
          "body": "The story does not invent an exact Brent oil percentage, call the pause a full cancellation or add later Asian share-market data.",
          "source_ids": [
            "MARKET-CURRENT",
            "FINANCE-CURRENT"
          ]
        },
        {
          "label": "OLD AND NEW",
          "title": "Both versions remain saved",
          "body": "The corrected story becomes current, while the earlier story stays searchable and unchanged.",
          "source_ids": [
            "LOCAL-CURRENT",
            "CYBER-CURRENT"
          ]
        }
      ],
      "market_connection": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.",
      "history_echo": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\". This is background only. It compares the nearest earlier saved Proof section and does not prove today's facts.",
      "tab_history": {
        "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
        "scope": "SAME_CANONICAL_TAB_ONLY",
        "tab_name": "Proof",
        "status": "MATCHED_PRIOR_TAB",
        "current": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "tab_name": "Proof",
          "question": "Can every main claim in the corrected 3/8/26 story be checked?",
          "headline": "Every main claim links to a current named report from today's saved edition.",
          "narrative": [
            "The corrected story uses the same 09:54 SGT closing time, 584 current reports, 566 direct links and 384 websites. The Iran, oil, OPEC+ and yen reports were all already inside today's saved edition.",
            "The correction changes only the order and explanation. The earlier story remains saved. The daily reports, prediction rules, later price checks and past results remain unchanged."
          ],
          "beats": [
            {
              "label": "MAIN FACTS",
              "title": "The four main reports can be opened",
              "body": "Readers can open the sources on the Iran pause, oil, OPEC+ and joint action on the yen.",
              "source_ids": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "LIMIT",
              "title": "Weak claims stay outside this edition",
              "body": "The story does not invent an exact Brent oil percentage, call the pause a full cancellation or add later Asian share-market data.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "OLD AND NEW",
              "title": "Both versions remain saved",
              "body": "The corrected story becomes current, while the earlier story stays searchable and unchanged.",
              "source_ids": [
                "CYBER-CURRENT",
                "LOCAL-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "CYBER-CURRENT",
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.",
          "watch_conditions": [
            "The dated correction record",
            "Matching current and saved versions",
            "The version running on the public website"
          ],
          "invalidation": "Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.",
          "content_sha256": "f9bb803654d4ec5fa8faa0f4b5da1533dc74c1db8e374d646fafb84d1885a2a9",
          "market_pulse": "RISK · COST · NEXT STEPS"
        },
        "prior": {
          "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "publication_date": "2026-08-03",
          "publication_label": "03 August 2026 OTR publish",
          "path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "tab_name": "Proof",
          "question": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
          "headline": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
          "narrative": [
            "The corrected editorial uses the same 09:54 SGT evidence cut, 584 current rows, 566 direct URLs, 384 domains and registry OTR-REGISTRY-73-V5. The Iran, oil, OPEC+ and yen lead records all remain inside that release.",
            "The correction changes selection and explanation only. The earlier story remains preserved, the new story identifies what it supersedes, and the daily release, prediction terms, resync observations and historical outcomes remain unchanged."
          ],
          "beats": [
            {
              "label": "LEAD FACTS",
              "title": "The four main records are directly traceable",
              "body": "Open the Iran pause, oil-market, OPEC+ and joint-yen sources from the evidence drawer.",
              "source_ids": [
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ]
            },
            {
              "label": "BOUNDARY",
              "title": "The exact weak claims remain outside the lock",
              "body": "The story does not invent an exact Brent percentage, call the pause a cancellation or backfill post-cut Asian equity data.",
              "source_ids": [
                "FINANCE-CURRENT",
                "MARKET-CURRENT"
              ]
            },
            {
              "label": "SUPERSESSION",
              "title": "The old and corrected stories both remain auditable",
              "body": "Current pointers move to the C01 edition while the original edition remains searchable and unchanged.",
              "source_ids": [
                "CYBER-CURRENT",
                "LOCAL-CURRENT"
              ]
            }
          ],
          "source_ids": [
            "CYBER-CURRENT",
            "ENERGY-CURRENT",
            "FINANCE-CURRENT",
            "LOCAL-CURRENT",
            "MARKET-CURRENT",
            "WORLD-CURRENT"
          ],
          "market_connection": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
          "watch_conditions": [
            "C01 supersession receipt",
            "Current/versioned pointer parity",
            "Live deployment identity"
          ],
          "invalidation": "Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.",
          "content_sha256": "caf7684bb01e30c5d4345327baec1ce908c812e5a51bb6fa93e2e99ea5b7dca3",
          "market_pulse": "RISK · COST · EXECUTION"
        },
        "compared_fields": [
          "question",
          "headline",
          "narrative",
          "beats",
          "source_ids",
          "market_connection",
          "watch_conditions",
          "invalidation"
        ],
        "content_change_state": "CHANGED",
        "content_change_summary": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
        "content_changes": {
          "changed_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "unchanged_fields": [
            "source_ids"
          ],
          "question": {
            "changed": true,
            "prior": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
            "current": "Can every main claim in the corrected 3/8/26 story be checked?"
          },
          "headline": {
            "changed": true,
            "prior": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
            "current": "Every main claim links to a current named report from today's saved edition."
          },
          "narrative": {
            "changed": true,
            "prior_count": 2,
            "current_count": 2,
            "added": [
              "The corrected story uses the same 09:54 SGT closing time, 584 current reports, 566 direct links and 384 websites. The Iran, oil, OPEC+ and yen reports were all already inside today's saved edition.",
              "The correction changes only the order and explanation. The earlier story remains saved. The daily reports, prediction rules, later price checks and past results remain unchanged."
            ],
            "removed": [
              "The corrected editorial uses the same 09:54 SGT evidence cut, 584 current rows, 566 direct URLs, 384 domains and registry OTR-REGISTRY-73-V5. The Iran, oil, OPEC+ and yen lead records all remain inside that release.",
              "The correction changes selection and explanation only. The earlier story remains preserved, the new story identifies what it supersedes, and the daily release, prediction terms, resync observations and historical outcomes remain unchanged."
            ],
            "retained": [],
            "reordered": false
          },
          "beats": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added_titles": [
              "The four main reports can be opened",
              "Weak claims stay outside this edition",
              "Both versions remain saved"
            ],
            "removed_titles": [
              "The four main records are directly traceable",
              "The exact weak claims remain outside the lock",
              "The old and corrected stories both remain auditable"
            ],
            "retained_titles": [],
            "revised_titles": [],
            "reordered": false
          },
          "source_ids": {
            "changed": false,
            "prior_count": 6,
            "current_count": 6,
            "added": [],
            "removed": [],
            "retained": [
              "CYBER-CURRENT",
              "ENERGY-CURRENT",
              "FINANCE-CURRENT",
              "LOCAL-CURRENT",
              "MARKET-CURRENT",
              "WORLD-CURRENT"
            ],
            "reordered": false
          },
          "market_connection": {
            "changed": true,
            "prior": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
            "current": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it."
          },
          "watch_conditions": {
            "changed": true,
            "prior_count": 3,
            "current_count": 3,
            "added": [
              "The dated correction record",
              "Matching current and saved versions",
              "The version running on the public website"
            ],
            "removed": [
              "C01 supersession receipt",
              "Current/versioned pointer parity",
              "Live deployment identity"
            ],
            "retained": [],
            "reordered": false
          },
          "invalidation": {
            "changed": true,
            "prior": "Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.",
            "current": "Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match."
          }
        },
        "similarities": [
          "Both records belong to the Proof canonical Full Immersive tab.",
          "Both records were checked across the same eight saved content fields.",
          "The saved source set is unchanged."
        ],
        "differences": [
          "Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
          "Headline changed from \"Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.\" to \"Every main claim links to a current named report from today's saved edition.\".",
          "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
          "Beat structure changed: added The four main reports can be opened, Weak claims stay outside this edition, Both versions remain saved; removed The four main records are directly traceable, The exact weak claims remain outside the lock, The old and corrected stories both remain auditable.",
          "Market connection changed from \"Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.\" to \"The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.\".",
          "Watch conditions changed: 3 added; 3 removed.",
          "Invalidation condition changed from \"Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.\" to \"Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.\"."
        ],
        "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
        "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
        "selection_audit": {
          "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
          "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
          "scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Proof",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "exact_candidate_count": 24,
          "checked_candidates": [
            {
              "rank": 1,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
              "publication_at_sgt": "2026-08-03T13:53:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
            },
            {
              "rank": 2,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
              "publication_at_sgt": "2026-08-03T10:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
            },
            {
              "rank": 3,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
              "publication_at_sgt": "2026-08-03T03:15:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
            },
            {
              "rank": 4,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
              "publication_at_sgt": "2026-08-02T15:56:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
            },
            {
              "rank": 5,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
              "publication_at_sgt": "2026-08-02T15:50:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
            },
            {
              "rank": 6,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
              "publication_at_sgt": "2026-08-02T15:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
            },
            {
              "rank": 7,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
              "publication_at_sgt": "2026-08-02T15:19:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
            },
            {
              "rank": 8,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
              "publication_at_sgt": "2026-08-02T13:36:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
            },
            {
              "rank": 9,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
              "publication_at_sgt": "2026-08-02T02:08:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
            },
            {
              "rank": 10,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
              "publication_at_sgt": "2026-08-01T23:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
            },
            {
              "rank": 11,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
            },
            {
              "rank": 12,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
              "publication_at_sgt": "2026-07-31T23:59:30+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
            },
            {
              "rank": 13,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
              "publication_at_sgt": "2026-07-31T23:55:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
            },
            {
              "rank": 14,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
              "publication_at_sgt": "2026-07-31T14:40:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
            },
            {
              "rank": 15,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
              "publication_at_sgt": "2026-07-31T14:25:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
            },
            {
              "rank": 16,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
              "publication_at_sgt": "2026-07-31T14:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
            },
            {
              "rank": 17,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
              "publication_at_sgt": "2026-07-31T13:05:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
            },
            {
              "rank": 18,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
              "publication_at_sgt": "2026-07-31T09:30:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
            },
            {
              "rank": 19,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
              "publication_at_sgt": "2026-07-31T08:21:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
            },
            {
              "rank": 20,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
              "publication_at_sgt": "2026-07-31T07:45:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
            },
            {
              "rank": 21,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
              "publication_at_sgt": "2026-07-30T19:33:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
            },
            {
              "rank": 22,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
              "publication_at_sgt": "2026-07-30T19:06:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
            },
            {
              "rank": 23,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
              "publication_at_sgt": "2026-07-30T09:20:00+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
            },
            {
              "rank": 24,
              "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
              "publication_at_sgt": "2026-07-30T07:29:36+08:00",
              "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
            }
          ],
          "selected_candidate_rank": 1,
          "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
          "fallback_used": false,
          "cross_tab_fallback_allowed": false,
          "theme_fallback_allowed": false
        },
        "selection_audit_sha256": "1b05491f9b782f636e4bbc8ab190378ec48996c587be84281c8c6712f3be1f51",
        "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "comparison_receipt_sha256": "032cbc8135075e3a24b65478e1e45767a5c81b5b068a27db708f009ed055babe"
      },
      "historical_data": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PROOF",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PROOF",
          "record_type": "FULL_IMMERSIVE_TAB_HISTORY",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Proof",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Proof",
          "source_headline": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
          "source_question": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
          "source_market_connection": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "caf7684bb01e30c5d4345327baec1ce908c812e5a51bb6fa93e2e99ea5b7dca3",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Proof",
          "current_headline": "Every main claim links to a current named report from today's saved edition.",
          "current_question": "Can every main claim in the corrected 3/8/26 story be checked?",
          "current_market_connection": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "f9bb803654d4ec5fa8faa0f4b5da1533dc74c1db8e374d646fafb84d1885a2a9",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
              "current": "Can every main claim in the corrected 3/8/26 story be checked?"
            },
            "headline": {
              "changed": true,
              "prior": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
              "current": "Every main claim links to a current named report from today's saved edition."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "The corrected story uses the same 09:54 SGT closing time, 584 current reports, 566 direct links and 384 websites. The Iran, oil, OPEC+ and yen reports were all already inside today's saved edition.",
                "The correction changes only the order and explanation. The earlier story remains saved. The daily reports, prediction rules, later price checks and past results remain unchanged."
              ],
              "removed": [
                "The corrected editorial uses the same 09:54 SGT evidence cut, 584 current rows, 566 direct URLs, 384 domains and registry OTR-REGISTRY-73-V5. The Iran, oil, OPEC+ and yen lead records all remain inside that release.",
                "The correction changes selection and explanation only. The earlier story remains preserved, the new story identifies what it supersedes, and the daily release, prediction terms, resync observations and historical outcomes remain unchanged."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "The four main reports can be opened",
                "Weak claims stay outside this edition",
                "Both versions remain saved"
              ],
              "removed_titles": [
                "The four main records are directly traceable",
                "The exact weak claims remain outside the lock",
                "The old and corrected stories both remain auditable"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "CYBER-CURRENT",
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
              "current": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "The dated correction record",
                "Matching current and saved versions",
                "The version running on the public website"
              ],
              "removed": [
                "C01 supersession receipt",
                "Current/versioned pointer parity",
                "Live deployment identity"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.",
              "current": "Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match."
            }
          },
          "similarities": [
            "Both records belong to the Proof canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
            "Headline changed from \"Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.\" to \"Every main claim links to a current named report from today's saved edition.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added The four main reports can be opened, Weak claims stay outside this edition, Both versions remain saved; removed The four main records are directly traceable, The exact weak claims remain outside the lock, The old and corrected stories both remain auditable.",
            "Market connection changed from \"Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.\" to \"The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.\" to \"Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.\"."
          ],
          "comparison": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
          "difference": "Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\". Headline changed from \"Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.\" to \"Every main claim links to a current named report from today's saved edition.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added The four main reports can be opened, Weak claims stay outside this edition, Both versions remain saved; removed The four main records are directly traceable, The exact weak claims remain outside the lock, The old and corrected stories both remain auditable. Market connection changed from \"Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.\" to \"The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.\" to \"Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Proof",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "1b05491f9b782f636e4bbc8ab190378ec48996c587be84281c8c6712f3be1f51",
          "comparison_receipt_sha256": "032cbc8135075e3a24b65478e1e45767a5c81b5b068a27db708f009ed055babe",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "otr_memory_context": {
        "memory_brain_id": "OTR-MEMORY-339e35ea64642570",
        "memory_brain_sha256": "29b5f1d05c4fe40daa651d6dcfac54dd866da593ccb806fd79732bbc1f63ac1d",
        "source_archive_index_sha256": "339e35ea646425702fe5f08cfcc9887a69e9c5adc1ee24c0f9fbbf42e96e1970",
        "mode": "LEARNING_CONTEXT",
        "same_day_excluded": true,
        "query_sha256": "f3fa4dafc8528caf85a8a6f9cdfd9ad213bf721221dc7b875651c5317161f989",
        "query_concepts": {
          "entities": [
            {
              "id": "OIL",
              "label": "Oil"
            },
            {
              "id": "JPY",
              "label": "Japanese yen"
            }
          ],
          "events": [
            {
              "id": "WAR_CONFLICT",
              "label": "War and conflict"
            }
          ],
          "terms": [
            "every",
            "main",
            "claim",
            "links",
            "named",
            "today",
            "saved",
            "edition",
            "the",
            "story",
            "can",
            "improve",
            "new",
            "dated",
            "record",
            "facts",
            "earlier",
            "not",
            "change",
            "corrected",
            "uses",
            "same",
            "sgt",
            "closing",
            "time",
            "direct",
            "and",
            "websites",
            "iran",
            "oil",
            "opec",
            "yen",
            "were",
            "all",
            "already",
            "inside",
            "correction",
            "changes",
            "order",
            "explanation",
            "remains",
            "prediction",
            "rules",
            "later",
            "price",
            "checks",
            "past",
            "results",
            "remain",
            "unchanged",
            "matching",
            "versions",
            "version",
            "running",
            "public",
            "website"
          ],
          "direction": "UNSTATED"
        },
        "before_at_sgt": "2026-08-03T15:45:45+08:00",
        "matched_record_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-11-PROOF",
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY"
        ],
        "matched_publication_ids": [
          "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
          "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01"
        ],
        "direction_counts": {
          "UP": 4,
          "DOWN": 0,
          "MIXED": 1,
          "UNSTATED": 0
        },
        "contradictory_direction_history": false,
        "use_state": "CONTEXT_ONLY",
        "current_fact_authority": false,
        "confidence_upgrade_authority": false,
        "matches": [
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Oil risk, yen intervention and verification pressure moved together.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 330.7236,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: sgt, story, yen, today, oil"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-11-PROOF",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "Every current claim and every prior publication keeps a route.",
            "engine": null,
            "tab": "Proof",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [
              {
                "id": "WAR_CONFLICT",
                "label": "War and conflict"
              }
            ],
            "score": 277.157,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "same event: War and conflict",
              "shared terms: story, sgt, and, every, edition"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT::TAB-04-BIG-3",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
            "date": "2026-08-01",
            "title": "Hormuz oil risk, yen intervention and the proof cost of AI form today’s Big Three.",
            "engine": null,
            "tab": "Big 3",
            "evidence_state": null,
            "direction": "MIXED",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 275.1677,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: yen, sgt, story, oil, and"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 251.7134,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, sgt, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          },
          {
            "archive_record_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01::TAB-01-TODAY",
            "publication_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
            "date": "2026-07-31",
            "title": "The yen jumped, the Bank of England held, and the proof bar rose.",
            "engine": null,
            "tab": "Today",
            "evidence_state": null,
            "direction": "UP",
            "matched_entities": [
              {
                "id": "OIL",
                "label": "Oil"
              },
              {
                "id": "JPY",
                "label": "Japanese yen"
              }
            ],
            "matched_events": [],
            "score": 251.7134,
            "why": [
              "same entity: Oil",
              "same entity: Japanese yen",
              "shared terms: story, yen, and, sgt, the"
            ],
            "use_state": "CONTEXT_ONLY",
            "current_fact_authority": false
          }
        ],
        "memory_recall_sha256": "6194d4288f52dab95efc7fab109776adbe814c4ac028574719dc423a541e4976"
      },
      "publication_comparisons": [
        {
          "record_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PROOF",
          "comparison_id": "OTR-TAB-HISTORY-OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02-PROOF",
          "record_type": "OTR_PUBLICATION_TAB_COMPARISON",
          "comparison_contract_id": "OTR-SAME-TAB-CONTENT-COMPARISON-V2",
          "comparison_basis": "EXACT_TAB_NAME_AND_SAVED_FIELDS",
          "content_comparison_basis": "EXACT_TAB_NAME_AND_COMPLETE_SAVED_TAB_CONTENT",
          "history_scope": "SAME_CANONICAL_TAB_ONLY",
          "tab_name": "Proof",
          "match_state": "MATCHED_PRIOR_TAB",
          "source_type": "OTR_PUBLISHED_HISTORY",
          "source_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
          "source_story_sha256": "69ed53707cd8d4410e515339a775664ae05f6f7dca0d2f212e123c7fae11f5e8",
          "source_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1353-SGT-C01",
          "source_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "source_publication_at_sgt": "2026-08-03T13:53:00+08:00",
          "source_publication_date": "2026-08-03",
          "source_publication_label": "03 August 2026 OTR publish",
          "source_publication_path": "/data/canonical-stories/otr-full-immersive-story-2026-08-03-1353-sgt-c01.json",
          "source_tab_name": "Proof",
          "source_headline": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
          "source_question": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
          "source_market_connection": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
          "source_market_pulse": "RISK · COST · EXECUTION",
          "source_content_sha256": "caf7684bb01e30c5d4345327baec1ce908c812e5a51bb6fa93e2e99ea5b7dca3",
          "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
          "current_edition_id": "OTR-FULL-IMMERSIVE-2026-08-03-1545-SGT-C02",
          "current_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
          "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
          "current_tab_name": "Proof",
          "current_headline": "Every main claim links to a current named report from today's saved edition.",
          "current_question": "Can every main claim in the corrected 3/8/26 story be checked?",
          "current_market_connection": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.",
          "current_market_pulse": "RISK · COST · NEXT STEPS",
          "current_content_sha256": "f9bb803654d4ec5fa8faa0f4b5da1533dc74c1db8e374d646fafb84d1885a2a9",
          "compared_fields": [
            "question",
            "headline",
            "narrative",
            "beats",
            "source_ids",
            "market_connection",
            "watch_conditions",
            "invalidation"
          ],
          "content_change_state": "CHANGED",
          "content_change_summary": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
          "content_changes": {
            "changed_fields": [
              "question",
              "headline",
              "narrative",
              "beats",
              "market_connection",
              "watch_conditions",
              "invalidation"
            ],
            "unchanged_fields": [
              "source_ids"
            ],
            "question": {
              "changed": true,
              "prior": "Can the corrected 3/8/26 story be traced to the unchanged locked release?",
              "current": "Can every main claim in the corrected 3/8/26 story be checked?"
            },
            "headline": {
              "changed": true,
              "prior": "Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.",
              "current": "Every main claim links to a current named report from today's saved edition."
            },
            "narrative": {
              "changed": true,
              "prior_count": 2,
              "current_count": 2,
              "added": [
                "The corrected story uses the same 09:54 SGT closing time, 584 current reports, 566 direct links and 384 websites. The Iran, oil, OPEC+ and yen reports were all already inside today's saved edition.",
                "The correction changes only the order and explanation. The earlier story remains saved. The daily reports, prediction rules, later price checks and past results remain unchanged."
              ],
              "removed": [
                "The corrected editorial uses the same 09:54 SGT evidence cut, 584 current rows, 566 direct URLs, 384 domains and registry OTR-REGISTRY-73-V5. The Iran, oil, OPEC+ and yen lead records all remain inside that release.",
                "The correction changes selection and explanation only. The earlier story remains preserved, the new story identifies what it supersedes, and the daily release, prediction terms, resync observations and historical outcomes remain unchanged."
              ],
              "retained": [],
              "reordered": false
            },
            "beats": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added_titles": [
                "The four main reports can be opened",
                "Weak claims stay outside this edition",
                "Both versions remain saved"
              ],
              "removed_titles": [
                "The four main records are directly traceable",
                "The exact weak claims remain outside the lock",
                "The old and corrected stories both remain auditable"
              ],
              "retained_titles": [],
              "revised_titles": [],
              "reordered": false
            },
            "source_ids": {
              "changed": false,
              "prior_count": 6,
              "current_count": 6,
              "added": [],
              "removed": [],
              "retained": [
                "CYBER-CURRENT",
                "ENERGY-CURRENT",
                "FINANCE-CURRENT",
                "LOCAL-CURRENT",
                "MARKET-CURRENT",
                "WORLD-CURRENT"
              ],
              "reordered": false
            },
            "market_connection": {
              "changed": true,
              "prior": "Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.",
              "current": "The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it."
            },
            "watch_conditions": {
              "changed": true,
              "prior_count": 3,
              "current_count": 3,
              "added": [
                "The dated correction record",
                "Matching current and saved versions",
                "The version running on the public website"
              ],
              "removed": [
                "C01 supersession receipt",
                "Current/versioned pointer parity",
                "Live deployment identity"
              ],
              "retained": [],
              "reordered": false
            },
            "invalidation": {
              "changed": true,
              "prior": "Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.",
              "current": "Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match."
            }
          },
          "similarities": [
            "Both records belong to the Proof canonical Full Immersive tab.",
            "Both records were checked across the same eight saved content fields.",
            "The saved source set is unchanged."
          ],
          "differences": [
            "Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
            "Headline changed from \"Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.\" to \"Every main claim links to a current named report from today's saved edition.\".",
            "Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed.",
            "Beat structure changed: added The four main reports can be opened, Weak claims stay outside this edition, Both versions remain saved; removed The four main records are directly traceable, The exact weak claims remain outside the lock, The old and corrected stories both remain auditable.",
            "Market connection changed from \"Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.\" to \"The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.\".",
            "Watch conditions changed: 3 added; 3 removed.",
            "Invalidation condition changed from \"Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.\" to \"Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.\"."
          ],
          "comparison": "The Proof tab changed its question, headline, narrative, beat structure, market connection, watch conditions, and invalidation condition. Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\".",
          "difference": "Question changed from \"Can the corrected 3/8/26 story be traced to the unchanged locked release?\" to \"Can every main claim in the corrected 3/8/26 story be checked?\". Headline changed from \"Every lead claim points to current rows inside OTR-DAILY-73-2026-08-03-0954-SGT.\" to \"Every main claim links to a current named report from today's saved edition.\". Narrative changed: 2 paragraph(s) added; 2 paragraph(s) removed. Beat structure changed: added The four main reports can be opened, Weak claims stay outside this edition, Both versions remain saved; removed The four main records are directly traceable, The exact weak claims remain outside the lock, The old and corrected stories both remain auditable. Market connection changed from \"Proof state: the editorial can improve only through a new receipt; the OTR-DAILY-73-2026-08-03-0954-SGT fact ledger does not move with it.\" to \"The story can improve only through a new dated record. The facts in the earlier daily edition do not change with it.\". Watch conditions changed: 3 added; 3 removed. Invalidation condition changed from \"Publication fails closed if a count, date, source ID, hash, prediction parent, audience artifact, archive record or deployment identity diverges.\" to \"Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.\".",
          "selection_audit": {
            "contract_id": "OTR-SAME-TAB-HISTORY-SELECTION-AUDIT-V1",
            "rule": "NEAREST_EARLIER_EXACT_CANONICAL_TAB",
            "scope": "SAME_CANONICAL_TAB_ONLY",
            "tab_name": "Proof",
            "current_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1545-SGT-C02",
            "current_publication_at_sgt": "2026-08-03T15:45:45+08:00",
            "exact_candidate_count": 24,
            "checked_candidates": [
              {
                "rank": 1,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
                "publication_at_sgt": "2026-08-03T13:53:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json"
              },
              {
                "rank": 2,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT",
                "publication_at_sgt": "2026-08-03T10:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1055-SGT.json"
              },
              {
                "rank": 3,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT",
                "publication_at_sgt": "2026-08-03T03:15:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-0315-SGT.json"
              },
              {
                "rank": 4,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT",
                "publication_at_sgt": "2026-08-02T15:56:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1556-SGT.json"
              },
              {
                "rank": 5,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT",
                "publication_at_sgt": "2026-08-02T15:50:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1550-SGT.json"
              },
              {
                "rank": 6,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT",
                "publication_at_sgt": "2026-08-02T15:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1520-SGT.json"
              },
              {
                "rank": 7,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT",
                "publication_at_sgt": "2026-08-02T15:19:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1519-SGT.json"
              },
              {
                "rank": 8,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT",
                "publication_at_sgt": "2026-08-02T13:36:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-1336-SGT.json"
              },
              {
                "rank": 9,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT",
                "publication_at_sgt": "2026-08-02T02:08:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-02-0208-SGT.json"
              },
              {
                "rank": 10,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT",
                "publication_at_sgt": "2026-08-01T23:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-08-01-2345-SGT.json"
              },
              {
                "rank": 11,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT-C01.json"
              },
              {
                "rank": 12,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT",
                "publication_at_sgt": "2026-07-31T23:59:30+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2359-SGT.json"
              },
              {
                "rank": 13,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT",
                "publication_at_sgt": "2026-07-31T23:55:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-2355-SGT.json"
              },
              {
                "rank": 14,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT",
                "publication_at_sgt": "2026-07-31T14:40:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1440-SGT.json"
              },
              {
                "rank": 15,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT",
                "publication_at_sgt": "2026-07-31T14:25:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1425-SGT.json"
              },
              {
                "rank": 16,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT",
                "publication_at_sgt": "2026-07-31T14:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1420-SGT.json"
              },
              {
                "rank": 17,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT",
                "publication_at_sgt": "2026-07-31T13:05:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-1305-SGT.json"
              },
              {
                "rank": 18,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT",
                "publication_at_sgt": "2026-07-31T09:30:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0930-SGT.json"
              },
              {
                "rank": 19,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT",
                "publication_at_sgt": "2026-07-31T08:21:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0821-SGT.json"
              },
              {
                "rank": 20,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
                "publication_at_sgt": "2026-07-31T07:45:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT.json"
              },
              {
                "rank": 21,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT",
                "publication_at_sgt": "2026-07-30T19:33:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1933-SGT.json"
              },
              {
                "rank": 22,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT",
                "publication_at_sgt": "2026-07-30T19:06:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-1906-SGT.json"
              },
              {
                "rank": 23,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT",
                "publication_at_sgt": "2026-07-30T09:20:00+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0920-SGT.json"
              },
              {
                "rank": 24,
                "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT",
                "publication_at_sgt": "2026-07-30T07:29:36+08:00",
                "file": "OTR-FULL-IMMERSIVE-STORY-2026-07-30-0729-SGT.json"
              }
            ],
            "selected_candidate_rank": 1,
            "selected_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
            "selected_publication_at_sgt": "2026-08-03T13:53:00+08:00",
            "selected_file": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01.json",
            "fallback_used": false,
            "cross_tab_fallback_allowed": false,
            "theme_fallback_allowed": false
          },
          "selection_audit_sha256": "1b05491f9b782f636e4bbc8ab190378ec48996c587be84281c8c6712f3be1f51",
          "comparison_receipt_sha256": "032cbc8135075e3a24b65478e1e45767a5c81b5b068a27db708f009ed055babe",
          "truth_gap": "This compares complete saved content from the same canonical tab only. It does not claim the same events, causes, market regime or outcome.",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false
        }
      ],
      "evidence_checklist": [
        "Open the direct source and check when it was published.",
        "Keep what the source said separate from what OTR thinks it may mean.",
        "For a major claim, look for an official source or a second independent report."
      ],
      "watch_conditions": [
        "The dated correction record",
        "Matching current and saved versions",
        "The version running on the public website"
      ],
      "invalidation": "Do not publish if the counts, dates, sources, saved files, prediction links, archive or public website do not match.",
      "learning_status": "APPENDED_TO_ISSUE_MEMORY - NO_AUTOMATIC_STATE_OR_WEIGHT_CHANGE",
      "update_receipt": {
        "release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
        "observed_at_sgt": "2026-08-03T15:45:45+08:00",
        "verified_sources": 12,
        "candidate_sources": 384,
        "automation_attempt_id": "OTR-DAILY-73-2026-08-03-0954-SGT-ATTEMPT",
        "state": "CURRENT_2026-08-03_CANONICAL"
      }
    }
  },
  "generation": {
    "mode": "FRESH_DAILY_COLLECTION",
    "run_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
    "completed_at_sgt": "2026-08-03T10:55:00+08:00",
    "source_release_sha256": "faee581ab72390ebece48eea0b9eb1b7fc6dddb043673658bce8eacaca9e44ae",
    "engine_registry_version": "OTR-REGISTRY-73-V5",
    "engine_count": 73,
    "candidate_signal_minimum_per_engine": 5,
    "candidate_signal_maximum_per_engine": 10,
    "candidate_signals_reviewed": 584,
    "candidate_records_retained": 584,
    "accepted_signal_routes": 584,
    "engines_meeting_verified_minimum": 73,
    "evidence_coverage_complete": true,
    "self_verification_required": 0,
    "unique_source_domains": 384,
    "story_tabs": 12,
    "material_signal_change": true,
    "statement": "The source edition remains the same completed daily collection. This new saved amendment gives each tab a content-specific history comparison and uses clear public language while preserving every underlying fact.",
    "editorial_revision_mode": "SAME_DAY_EDITORIAL_CORRECTION",
    "editorial_revision_completed_at_sgt": "2026-08-03T15:45:45+08:00",
    "engine_run_completion_preserved_at_sgt": "2026-08-03T10:55:00+08:00"
  },
  "editorial_correction": {
    "correction_id": "OTR-FULL-IMMERSIVE-EDITORIAL-CORRECTION-2026-08-03-1545-SGT-C02",
    "correction_type": "SAME_DAY_TAB_HISTORY_AND_PUBLIC_LANGUAGE",
    "revision": "C02",
    "corrected_at_sgt": "2026-08-03T15:45:45+08:00",
    "superseded_story_id": "OTR-FULL-IMMERSIVE-STORY-2026-08-03-1353-SGT-C01",
    "daily_release_id": "OTR-DAILY-73-2026-08-03-0954-SGT",
    "evidence_cutoff_at_sgt": "2026-08-03T09:54:00+08:00",
    "latest_resync_release_id_preserved": "OTR-RESYNC-2026-08-03-1326-SGT",
    "prediction_price_snapshot_id_preserved": "OTR-PREDICTION-PRICE-SNAPSHOT-2026-08-03-1326-SGT",
    "canonical_signal_records_changed": false,
    "canonical_source_records_changed": false,
    "locked_prediction_terms_changed": false,
    "resync_or_price_observations_changed": false,
    "pipeline_engine_run_replayed": false,
    "purpose": "Give every Full Immersive tab its own content-specific comparison with an earlier saved version, and present the public story in clear Secondary 3 English.",
    "boundary": "This amendment changes the public explanation and the way saved same-tab history is compared. It does not add a later fact, rerun an engine, or rewrite a signal, source, prediction, resync, price observation or outcome.",
    "append_only": true
  },
  "deterministic_output_sha256": "9674642c5b7cb5ab943d59ce27d8cf9f0f548fd051db88cdab218cafb3286259"
}
