{
  "schema_version": 3,
  "story_id": "OTR-FULL-IMMERSIVE-STORY-2026-07-31-0745-SGT",
  "edition_id": "OTR-FULL-IMMERSIVE-2026-07-31-0745-SGT",
  "standard_id": "OTR-FULL-IMMERSIVE-STORY-STANDARD-V1",
  "release_id": "OTR-DAILY-66-2026-07-30-1904-SGT",
  "publication_status": "ACTIVE",
  "market_pulse_cutoff_at_sgt": "2026-07-30T19:04:00+08:00",
  "story_written_at_sgt": "2026-07-31T07:45:00+08:00",
  "current_event_window": {
    "start_at_sgt": "2026-07-27T09:00:00+08:00",
    "end_at_sgt": "2026-07-30T19:04:00+08:00"
  },
  "confidence_boundary": "This active daily edition publishes source-linked current signals and a multi-source editorial. One publisher headline remains one report, not independent confirmation of every underlying claim.",
  "market_pulse": {
    "label": "OIL UP · FED + BOE HOLD · AI SPLITS",
    "headline": "Conflict lifted oil as central banks held, while AI costs split the market.",
    "summary": "Conflict risk lifted oil, the Federal Reserve and Bank of England both held rates with three dissenters wanting a rise, and Big Tech earnings separated clear AI revenue from rising cost pressure.",
    "state": "Oil pressure active · Fed and BoE held · three hike dissents at each · AI demand real · returns selective · Singapore cushioning local exposure",
    "source_ids": [
      "IRAN-AP",
      "MARKET-AP",
      "FED-OFFICIAL",
      "MSFT-AP",
      "META-AP",
      "SG-SUPPORT-CNA"
    ]
  },
  "story_spine": [
    {
      "step": 1,
      "title": "Conflict raises physical risk",
      "body": "Fresh strikes and stalled diplomacy keep pressure on oil routes and confidence.",
      "source_ids": [
        "IRAN-AP",
        "MARKET-AP"
      ]
    },
    {
      "step": 2,
      "title": "Oil raises the inflation question",
      "body": "A sharp oil rise keeps supply-led price pressure inside the central-bank debate.",
      "source_ids": [
        "MARKET-AP",
        "FED-OFFICIAL"
      ]
    },
    {
      "step": 3,
      "title": "The Fed and Bank of England hold but split",
      "body": "Both central banks held rates while three voters at each preferred tighter policy.",
      "source_ids": [
        "FED-OFFICIAL",
        "BOE-OFFICIAL"
      ]
    },
    {
      "step": 4,
      "title": "Restrictive money raises the proof test",
      "body": "Higher borrowing costs make expensive growth plans harder to defend.",
      "source_ids": [
        "FED-AXIOS",
        "AI-COST-AXIOS"
      ]
    },
    {
      "step": 5,
      "title": "AI companies separate",
      "body": "Microsoft shows stronger monetisation while Meta shows heavier cost pressure.",
      "source_ids": [
        "MSFT-AP",
        "META-AP"
      ]
    },
    {
      "step": 6,
      "title": "Singapore cushions local impact",
      "body": "Business support, vouchers and cyber preparation reduce local exposure without ending the global shock.",
      "source_ids": [
        "SG-SUPPORT-CNA",
        "SG-VOUCHERS-ST",
        "SG-CYBER-CNA"
      ]
    }
  ],
  "sources": [
    {
      "id": "FED-OFFICIAL",
      "label": "Federal Reserve",
      "fact": "The Federal Reserve kept its target rate at 3.5% to 3.75% in a 9-3 vote; three members preferred a quarter-point rise.",
      "url": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20260729a.htm",
      "source_type": "PRIMARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-15-1",
      "engine": "Finance",
      "publisher_timestamp": "2026-07-29T18:00:00.000Z"
    },
    {
      "id": "FED-AXIOS",
      "label": "Axios",
      "fact": "The hold decision came with three officials preferring a rise and little guidance about the next move.",
      "url": "https://www.axios.com/2026/07/29/fed-warsh-rates-inflation",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-15-3",
      "engine": "Finance",
      "publisher_timestamp": "2026-07-29T19:28:43.000Z"
    },
    {
      "id": "MARKET-AP",
      "label": "Associated Press",
      "fact": "Brent crude jumped 7.3%, the Dow fell more than 1,100 points and AI-linked stocks weakened.",
      "url": "https://apnews.com/article/stocks-markets-ai-oil-trump-rates-b8bfaf782877957bbaa7196b70a4d725",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-34-1",
      "engine": "Market Shifts",
      "publisher_timestamp": "2026-07-29T03:43:05.000Z"
    },
    {
      "id": "IRAN-AP",
      "label": "Associated Press",
      "fact": "The US-Iran conflict entered a wider phase as Saudi Arabia joined strikes and diplomacy stalled.",
      "url": "https://apnews.com/article/iran-war-trump-saudi-arabia-israel-cbb2c3f49f3072c542fc6395468b64b5",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-02-1",
      "engine": "International News",
      "publisher_timestamp": "2026-07-29T21:02:21.000Z"
    },
    {
      "id": "MSFT-AP",
      "label": "Associated Press",
      "fact": "Microsoft reported $90 billion in quarterly revenue, with strong cloud growth and more paid AI users.",
      "url": "https://apnews.com/article/microsoft-earnings-results-ai-f7dff4fb9d51a2bdec56a13e5da1053d",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-14-1",
      "engine": "Conflux Nexus Omega Engine",
      "publisher_timestamp": "2026-07-29T21:20:50.000Z"
    },
    {
      "id": "META-AP",
      "label": "Associated Press",
      "fact": "Meta's quarterly profit fell while revenue rose, and legal, severance and heavy spending costs increased.",
      "url": "https://apnews.com/article/meta-earnings-q2-facebook-profit-revenue-ai-bcbc62dde6d2cac724e3b3385fcabeab",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-14-2",
      "engine": "Conflux Nexus Omega Engine",
      "publisher_timestamp": "2026-07-29T20:31:21.000Z"
    },
    {
      "id": "AI-COST-AXIOS",
      "label": "Axios",
      "fact": "Microsoft and Meta both reported much higher spending linked to cloud and AI demand.",
      "url": "https://www.axios.com/2026/07/29/meta-microsoft-earnings-reports-ai",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-14-3",
      "engine": "Conflux Nexus Omega Engine",
      "publisher_timestamp": "2026-07-29T20:39:54.000Z"
    },
    {
      "id": "SG-SUPPORT-CNA",
      "label": "CNA",
      "fact": "Singapore added cash grants and an enhanced loan scheme in a S$900 million support package for firms.",
      "url": "https://www.channelnewsasia.com/singapore/sme-cash-grant-loan-cashflow-companies-6285366",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-01-1",
      "engine": "Singapore News",
      "publisher_timestamp": "2026-07-29T09:00:00.000Z"
    },
    {
      "id": "SG-CYBER-CNA",
      "label": "CNA",
      "fact": "MAS and the banking sector formed a task force for AI and quantum cyber risks.",
      "url": "https://www.channelnewsasia.com/singapore/ai-quantum-scams-financial-mas-task-force-6282126",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-43-1",
      "engine": "Cybersecurity & Digital Trust",
      "publisher_timestamp": "2026-07-28T09:30:00.000Z"
    },
    {
      "id": "SG-VOUCHERS-ST",
      "label": "The Straits Times",
      "fact": "Singapore households are due to receive another S$300 in CDC vouchers in January 2027 as an inflation cushion.",
      "url": "https://www.straitstimes.com/singapore/spore-households-to-get-300-cdc-vouchers-in-january-2027-to-cushion-impact-of-inflation",
      "source_type": "SECONDARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-05-1",
      "engine": "SG Deals",
      "publisher_timestamp": "2026-07-29T12:45:00.000Z"
    },
    {
      "id": "BOE-OFFICIAL",
      "label": "Bank of England",
      "fact": "The Bank of England maintained Bank Rate at 3.75% in a 6-3 vote; three members preferred a quarter-point rise to 4%.",
      "url": "https://www.bankofengland.co.uk/monetary-policy-summary-and-minutes/2026/july-2026",
      "source_type": "PRIMARY_CURRENT",
      "canonical_signal_id": "OTR-30JUL-15-2",
      "engine": "Finance",
      "publisher_timestamp": "2026-07-30T11:00:00.000Z"
    }
  ],
  "tabs": {
    "Today": {
      "eyebrow": "TODAY · WHAT CHANGED AFTER THE LAST LOCK",
      "question": "What is genuinely new in the 30 July edition?",
      "headline": "The Fed held rates, but the world became less settled.",
      "narrative": [
        "Three important facts arrived after the old 29 July lock. The Federal Reserve kept its target rate at 3.5% to 3.75%, but three voters wanted a rise. Fighting around Iran widened again, and oil and share markets reacted sharply.",
        "Big Tech then split into two stories. Microsoft showed strong cloud and AI demand. Meta still grew revenue, but profit fell as legal, severance and heavy spending costs rose. The shared lesson is simple: demand can be real while the price of certainty keeps rising."
      ],
      "beats": [
        {
          "label": "CONFLICT",
          "title": "Fresh fighting raised the energy risk",
          "body": "Wider strikes and stalled diplomacy kept pressure on energy routes and confidence.",
          "source_ids": [
            "IRAN-AP",
            "MARKET-AP"
          ]
        },
        {
          "label": "POLICY",
          "title": "The Fed held, with a clear internal split",
          "body": "Nine officials held rates steady while three preferred a quarter-point rise.",
          "source_ids": [
            "FED-OFFICIAL",
            "FED-AXIOS"
          ]
        },
        {
          "label": "TECHNOLOGY",
          "title": "AI demand stayed strong, but returns separated",
          "body": "Microsoft showed stronger monetisation while Meta showed how quickly costs can weaken the result.",
          "source_ids": [
            "MSFT-AP",
            "META-AP",
            "AI-COST-AXIOS"
          ]
        }
      ],
      "market_connection": "The pulse changed from 'Fed decision ahead' to a completed hold with three dissents, while oil risk and AI-return differences remained active.",
      "history_echo": "CONTEXT_ONLY: large historical oil moves show possible speed, not the direction or duration of today's shock.",
      "historical_data": [
        {
          "record_id": "MPAT-DCOILBRENTEU-2020-04-21-2020-05-20",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DCOILBRENTEU",
          "series_name": "Brent crude oil",
          "family": "Energy",
          "start_date": "2020-04-21",
          "end_date": "2020-05-20",
          "direction": "UP",
          "change_display": "+281.14%",
          "headline": "Brent crude oil moved +281.14% across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DCOILBRENTEU",
          "match_label": "Oil-shock comparison",
          "comparison": "Past Brent windows show that oil can move quickly when physical supply risk changes.",
          "difference": "That history does not prove how long the present rise will last or how the current conflict will develop.",
          "matched_signal_ids": [
            "OTR-30JUL-02-1",
            "OTR-30JUL-34-1"
          ]
        }
      ]
    },
    "Worry": {
      "eyebrow": "WORRY · WHERE PRESSURE CAN SPREAD",
      "question": "Which risk can move from markets into daily costs?",
      "headline": "A rate hold does not remove the inflation problem.",
      "narrative": [
        "The Fed did not raise rates, but its statement still said inflation was above the 2% goal and partly linked this to supply shocks, including energy. Three voters wanted a rise. This means the policy argument is no longer about whether pressure exists; it is about how much restraint is needed.",
        "The risk chain is oil to transport, transport to company costs, company costs to prices, and prices to borrowing and household choices. Singapore's support package can soften part of that chain, but it cannot control the conflict or world energy prices."
      ],
      "beats": [
        {
          "label": "ENERGY",
          "title": "Oil can renew price pressure",
          "body": "The market move was large enough to keep energy-led inflation risk in view.",
          "source_ids": [
            "MARKET-AP",
            "IRAN-AP"
          ]
        },
        {
          "label": "RATES",
          "title": "The Fed split makes the next step less clear",
          "body": "Holding rates and recording three hike votes leaves less comfort about an easy policy path.",
          "source_ids": [
            "FED-OFFICIAL",
            "FED-AXIOS"
          ]
        },
        {
          "label": "SINGAPORE",
          "title": "Relief protects cash flow, not the external price",
          "body": "Cash grants, loans and future vouchers can cushion firms and households while the outside shock remains.",
          "source_ids": [
            "SG-SUPPORT-CNA",
            "SG-VOUCHERS-ST"
          ]
        }
      ],
      "market_connection": "Watch whether energy pressure survives long enough to affect inflation expectations, long yields and company pricing.",
      "history_echo": "CONTEXT_ONLY: past WTI reversals warn against treating the first oil move as a permanent direction.",
      "historical_data": [
        {
          "record_id": "MPAT-DCOILWTICO-2020-03-20-2020-04-20",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DCOILWTICO",
          "series_name": "WTI crude oil",
          "family": "Energy",
          "start_date": "2020-03-20",
          "end_date": "2020-04-20",
          "direction": "DOWN",
          "change_display": "-289.84%",
          "headline": "WTI crude oil moved -289.84% across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DCOILWTICO",
          "match_label": "Energy-volatility warning",
          "comparison": "Past WTI windows show that energy prices can reverse sharply after an initial shock.",
          "difference": "The current supply route, policy setting and market structure are different, so the past move is not a forecast.",
          "matched_signal_ids": [
            "OTR-30JUL-34-1",
            "OTR-30JUL-15-1"
          ]
        }
      ]
    },
    "Big 3": {
      "eyebrow": "BIG 3 · THE DECISIONS THAT ORGANISE THE ISSUE",
      "question": "Which three developments deserve attention first?",
      "headline": "Oil, a divided Fed and AI returns now control the story.",
      "narrative": [
        "The first development is physical: conflict risk is reaching oil again. The second is institutional: the Fed held, but three members wanted tighter policy. The third is commercial: AI spending is rising fast, while company results show very different levels of return.",
        "These three developments connect. Higher energy costs can keep rates restrictive. Restrictive rates raise the proof needed from expensive technology plans. Strong AI demand is therefore not enough by itself; companies must also show revenue, profit and useful customer adoption."
      ],
      "beats": [
        {
          "label": "01 · OIL",
          "title": "Physical risk returned to the price",
          "body": "Conflict and constrained routes pushed oil sharply higher.",
          "source_ids": [
            "IRAN-AP",
            "MARKET-AP"
          ]
        },
        {
          "label": "02 · FED",
          "title": "A hold came with three hike votes",
          "body": "The decision avoided a surprise rise but exposed a stronger inflation argument inside the Fed.",
          "source_ids": [
            "FED-OFFICIAL",
            "FED-AXIOS"
          ]
        },
        {
          "label": "03 · AI",
          "title": "Revenue proof and spending risk split",
          "body": "Microsoft and Meta showed that AI demand and AI economics are not the same test.",
          "source_ids": [
            "MSFT-AP",
            "META-AP"
          ]
        }
      ],
      "market_connection": "The Big Three form one chain: oil pressure shapes policy, policy shapes the price of capital, and capital raises the proof demanded from AI spending.",
      "history_echo": "CONTEXT_ONLY: short-rate history gives scale to policy repricing but does not predict the next meeting.",
      "historical_data": [
        {
          "record_id": "MPAT-DGS2-1980-04-08-1980-05-06",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DGS2",
          "series_name": "U.S. Treasury 2-year yield",
          "family": "Interest rates",
          "start_date": "1980-04-08",
          "end_date": "1980-05-06",
          "direction": "DOWN",
          "change_display": "-449.00 bps",
          "headline": "U.S. Treasury 2-year yield moved -449.00 bps across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DGS2",
          "match_label": "Short-rate sensitivity",
          "comparison": "The two-year Treasury yield has historically moved strongly when policy expectations change.",
          "difference": "Today's Fed hold and dissents are current evidence; the old yield window supplies scale only.",
          "matched_signal_ids": [
            "OTR-30JUL-15-1",
            "OTR-30JUL-15-3"
          ]
        }
      ]
    },
    "Predictions": {
      "eyebrow": "PREDICTIONS · CONDITIONS BEFORE A CONTRACT",
      "question": "Does today's story create a testable prediction?",
      "headline": "No automatic prediction: the evidence creates watch conditions.",
      "narrative": [
        "A strong story is not a prediction contract. The Fed decision has passed, but no new asset contract in this edition has a locked entry, stop, target and evidence owner. OTR therefore publishes no automatic entry or exit state from this narrative.",
        "The useful output is a set of conditions. Watch whether oil holds the move, whether long yields remain high, and whether investors reward firms that show AI revenue while punishing firms whose costs rise faster. If those conditions change, the story must change too."
      ],
      "beats": [
        {
          "label": "NO ENTRY",
          "title": "A completed Fed decision is not a price contract",
          "body": "The policy fact is verified, but it does not supply an asset, entry time, stop or target.",
          "source_ids": [
            "FED-OFFICIAL",
            "MARKET-AP"
          ]
        },
        {
          "label": "WATCH",
          "title": "Oil persistence is the first trigger",
          "body": "A reversal would weaken the inflation chain; continued strength would keep it active.",
          "source_ids": [
            "IRAN-AP",
            "BOE-OFFICIAL"
          ]
        },
        {
          "label": "COMPARE",
          "title": "AI returns need company-level proof",
          "body": "The gap between Microsoft and Meta warns against one broad prediction for every AI-linked company.",
          "source_ids": [
            "MSFT-AP",
            "META-AP",
            "AI-COST-AXIOS"
          ]
        }
      ],
      "market_connection": "Prediction state: research only. A separate immutable contract is required before ENTRY CONDITION MET or EXIT CHECK DUE can appear.",
      "history_echo": "CONTEXT_ONLY: short-yield history supports strict timing rules and cannot be used to invent an entry after the event.",
      "historical_data": [
        {
          "record_id": "MPAT-DGS1MO-2007-07-23-2007-08-20",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DGS1MO",
          "series_name": "U.S. Treasury 1-month yield",
          "family": "Interest rates",
          "start_date": "2007-07-23",
          "end_date": "2007-08-20",
          "direction": "DOWN",
          "change_display": "-241.00 bps",
          "headline": "U.S. Treasury 1-month yield moved -241.00 bps across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DGS1MO",
          "match_label": "No-hindsight control",
          "comparison": "Short Treasury yields can move before or after a policy decision, which makes pre-set entry rules important.",
          "difference": "The observed history does not create a trade and cannot fill a missing entry or exit receipt.",
          "matched_signal_ids": [
            "OTR-30JUL-15-1",
            "OTR-30JUL-34-1"
          ]
        }
      ]
    },
    "Dots": {
      "eyebrow": "DOTS · THE CAUSAL MAP",
      "question": "How do the separate facts connect without becoming one invented cause?",
      "headline": "The chain runs from physical risk to the price of capital.",
      "narrative": [
        "The chain begins with conflict and the risk to energy routes. Oil then feeds the inflation debate. The Fed's hold keeps the current rate in place, while three dissents show pressure for more restraint. Bond yields and borrowing costs carry that argument into company values.",
        "Technology sits at the far end of the chain. High spending is easier to defend when cloud and AI revenue are visible. It is harder to defend when costs rise faster than profit. Singapore support then appears as a local shock absorber, not as proof that the global chain has ended."
      ],
      "beats": [
        {
          "label": "PHYSICAL → PRICE",
          "title": "Conflict reaches oil",
          "body": "The wider conflict raised concern about supply routes and lifted the energy price signal.",
          "source_ids": [
            "IRAN-AP",
            "MARKET-AP"
          ]
        },
        {
          "label": "PRICE → POLICY",
          "title": "Oil reaches the inflation argument",
          "body": "The Fed kept rates steady but described elevated inflation and recorded three votes for a rise.",
          "source_ids": [
            "FED-OFFICIAL",
            "FED-AXIOS"
          ]
        },
        {
          "label": "CAPITAL → COMPANY",
          "title": "The cost of capital reaches AI returns",
          "body": "Heavy spending needs clearer proof when yields and economic uncertainty stay high.",
          "source_ids": [
            "AI-COST-AXIOS",
            "MSFT-AP",
            "META-AP"
          ]
        }
      ],
      "market_connection": "This is a transmission map, not a claim that one event caused every market move.",
      "history_echo": "CONTEXT_ONLY: ten-year yield history shows the channel can matter, while today's sources decide whether it is active.",
      "historical_data": [
        {
          "record_id": "MPAT-DGS10-1981-10-26-1981-11-25",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DGS10",
          "series_name": "U.S. Treasury 10-year yield",
          "family": "Interest rates",
          "start_date": "1981-10-26",
          "end_date": "1981-11-25",
          "direction": "DOWN",
          "change_display": "-262.00 bps",
          "headline": "U.S. Treasury 10-year yield moved -262.00 bps across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DGS10",
          "match_label": "Long-rate transmission",
          "comparison": "Past ten-year yield moves show how inflation and growth expectations can travel into long borrowing costs.",
          "difference": "The record does not prove that today's oil move caused every change in bonds, shares or household costs.",
          "matched_signal_ids": [
            "OTR-30JUL-34-1",
            "OTR-30JUL-15-3"
          ]
        }
      ]
    },
    "Novel": {
      "eyebrow": "NOVEL · THE NON-OBVIOUS READ",
      "question": "What becomes visible only when the earnings are compared?",
      "headline": "AI demand can boom while confidence becomes more selective.",
      "narrative": [
        "Microsoft showed that cloud demand and paid AI use can produce strong revenue growth. Meta also grew revenue, but profit fell as legal, severance and spending costs rose. Both facts can be true at the same time: AI can be useful and expensive.",
        "The market may now separate companies by proof rather than by the AI label. The strongest position is not simply the largest spending plan. It is the ability to connect spending to paying users, durable revenue, operating efficiency and a clear path to profit."
      ],
      "beats": [
        {
          "label": "DEMAND",
          "title": "Microsoft showed paid adoption",
          "body": "Cloud growth and paid Copilot seats gave investors a visible revenue route.",
          "source_ids": [
            "MSFT-AP",
            "AI-COST-AXIOS"
          ]
        },
        {
          "label": "COST",
          "title": "Meta showed the pressure side",
          "body": "Revenue grew, but profit and free cash flow faced much heavier costs.",
          "source_ids": [
            "META-AP",
            "AI-COST-AXIOS"
          ]
        },
        {
          "label": "SELECTION",
          "title": "The broad AI trade becomes a proof test",
          "body": "A weaker technology market can coexist with strong results at the firms that show a clearer return.",
          "source_ids": [
            "MARKET-AP",
            "MSFT-AP",
            "META-AP"
          ]
        }
      ],
      "market_connection": "The market pulse is not 'AI failed'. It is 'AI evidence is becoming company-specific'.",
      "history_echo": "CONTEXT_ONLY: Korean currency history is a regional stress reference, not proof of a chip or AI earnings outcome.",
      "historical_data": [
        {
          "record_id": "MPAT-DEXKOUS-1997-11-21-1997-12-23",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DEXKOUS",
          "series_name": "South Korean won per U.S. dollar",
          "family": "Foreign exchange",
          "start_date": "1997-11-21",
          "end_date": "1997-12-23",
          "direction": "UP",
          "change_display": "+84.91%",
          "headline": "South Korean won per U.S. dollar moved +84.91% across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DEXKOUS",
          "match_label": "Technology-region context",
          "comparison": "Large Korean won moves have sometimes appeared beside stress in globally important technology supply chains.",
          "difference": "A currency move is not proof that AI demand, chip profits or one company's earnings will strengthen or weaken.",
          "matched_signal_ids": [
            "OTR-30JUL-14-1",
            "OTR-30JUL-14-2",
            "OTR-30JUL-34-1"
          ]
        }
      ]
    },
    "Tomorrow": {
      "eyebrow": "TOMORROW · WHAT CAN CHANGE THE STORY",
      "question": "Which next observations would strengthen or weaken this issue?",
      "headline": "Watch oil persistence, rate language and the earnings reaction.",
      "narrative": [
        "The story strengthens if conflict keeps oil high, other central banks sound more restrictive and investors keep demanding better returns from AI spending. It weakens if energy prices reverse, diplomacy improves, long yields fall and the market rewards a wider group of technology firms.",
        "Singapore has two local checks. First, see how quickly support reaches business cash flow. Second, follow whether new AI and quantum cyber guidance changes bank controls. These are measurable next steps, not promises of a real-time feed."
      ],
      "beats": [
        {
          "label": "GLOBAL TRIGGER",
          "title": "Does oil hold the conflict premium?",
          "body": "Persistent oil strength keeps the inflation and rate chain active; a clear reversal weakens it.",
          "source_ids": [
            "IRAN-AP",
            "MARKET-AP"
          ]
        },
        {
          "label": "POLICY TRIGGER",
          "title": "Do other central banks echo the Fed split?",
          "body": "The Bank of England also held at 3.75%, with three members preferring a rise to 4%.",
          "source_ids": [
            "FED-OFFICIAL",
            "BOE-OFFICIAL"
          ]
        },
        {
          "label": "LOCAL TRIGGER",
          "title": "Does support improve cash flow?",
          "body": "The Singapore package should be judged by delivery and use, not its announcement alone.",
          "source_ids": [
            "SG-SUPPORT-CNA",
            "SG-VOUCHERS-ST"
          ]
        }
      ],
      "market_connection": "Next check order: oil and conflict → central-bank language → yields and technology → Singapore delivery.",
      "history_echo": "CONTEXT_ONLY: the old yield-curve window helps compare regime change but gives no fixed deadline for confirmation.",
      "historical_data": [
        {
          "record_id": "MPAT-T10Y2Y-1980-04-10-1980-05-08",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "T10Y2Y",
          "series_name": "U.S. Treasury 10-year minus 2-year spread",
          "family": "Yield curve",
          "start_date": "1980-04-10",
          "end_date": "1980-05-08",
          "direction": "UP",
          "change_display": "+221.00 bps",
          "headline": "U.S. Treasury 10-year minus 2-year spread moved +221.00 bps across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/T10Y2Y",
          "match_label": "Yield-curve watch",
          "comparison": "The ten-year minus two-year spread has changed sharply when markets reassessed inflation, growth and policy paths.",
          "difference": "The curve is one observation, not a probability for the next Fed or Bank of England decision.",
          "matched_signal_ids": [
            "OTR-30JUL-15-1",
            "OTR-30JUL-15-2"
          ]
        }
      ]
    },
    "Learning": {
      "eyebrow": "LEARNING · WHAT TO KEEP AND WHAT TO REFUSE",
      "question": "What can the system learn from one fresh edition?",
      "headline": "Keep the questions; do not overlearn the answer.",
      "narrative": [
        "This edition improves one process lesson. A completed policy decision must replace an 'ahead of the Fed' label. A fresh edition must carry fresh source timestamps, engine-scope checks and a new release ID. Replaying yesterday's ledger is not a new publication.",
        "The content lesson is narrower. Compare demand, spending and profit separately. Do not learn that every oil rise leads to a rate rise, or that every AI spender will fail. No engine weight changes from this edition because there are not enough settled, comparable outcomes."
      ],
      "beats": [
        {
          "label": "KEEP",
          "title": "Decision-state reconciliation",
          "body": "When the Fed decision is complete, every current surface must change from scheduled to resolved.",
          "source_ids": [
            "FED-OFFICIAL",
            "FED-AXIOS"
          ]
        },
        {
          "label": "SEPARATE",
          "title": "Demand, spending and profit",
          "body": "These three measures answer different questions and should never be collapsed into one AI score.",
          "source_ids": [
            "MSFT-AP",
            "META-AP",
            "AI-COST-AXIOS"
          ]
        },
        {
          "label": "REFUSE",
          "title": "One edition changing global weights",
          "body": "The oil, policy and earnings observations enter memory without automatic recalibration.",
          "source_ids": [
            "MARKET-AP",
            "FED-OFFICIAL"
          ]
        }
      ],
      "market_connection": "Learning state: append the evidence, preserve the 29 July audit, settle later outcomes, and make no global weight change.",
      "history_echo": "CONTEXT_ONLY: long-yield history warns that effects can persist but cannot promote today's interpretation.",
      "historical_data": [
        {
          "record_id": "MPAT-DGS30-1981-10-26-1981-11-25",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DGS30",
          "series_name": "U.S. Treasury 30-year yield",
          "family": "Interest rates",
          "start_date": "1981-10-26",
          "end_date": "1981-11-25",
          "direction": "DOWN",
          "change_display": "-238.00 bps",
          "headline": "U.S. Treasury 30-year yield moved -238.00 bps across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DGS30",
          "match_label": "Long-memory restraint",
          "comparison": "Long Treasury yields show that market consequences can outlast the first headline.",
          "difference": "One historical move cannot justify a weight change or claim that the same outcome will repeat.",
          "matched_signal_ids": [
            "OTR-30JUL-34-1",
            "OTR-30JUL-14-3"
          ]
        }
      ]
    },
    "Glossary": {
      "eyebrow": "GLOSSARY · WORDS USED PRECISELY",
      "question": "Which terms stop the story from making a false promise?",
      "headline": "Fresh, verified, self-verification and split evidence mean different things.",
      "narrative": [
        "Fresh means the candidate was collected for this edition. Verified means its date, engine fit and evidence boundary passed. SELF VERIFICATION REQUIRED means the candidate is published for inspection but cannot support the editorial until separately checked.",
        "Split evidence means related facts point in different directions. Microsoft and Meta both showed AI demand, but their cost and profit outcomes differed. A market pulse summarises that tension; it does not create a trade or remove uncertainty."
      ],
      "beats": [
        {
          "label": "FRESH",
          "title": "Collected for this edition",
          "body": "The source carries a current publisher timestamp and a direct claim-level route.",
          "source_ids": [
            "FED-OFFICIAL",
            "IRAN-AP"
          ]
        },
        {
          "label": "SPLIT",
          "title": "Related facts disagree in meaning",
          "body": "Strong cloud results and weaker profit quality can exist inside the same AI spending cycle.",
          "source_ids": [
            "MSFT-AP",
            "META-AP"
          ]
        },
        {
          "label": "SELF VERIFICATION REQUIRED",
          "title": "Published but not editorial proof",
          "body": "The candidate remains visible with a warning when its date, engine fit or evidence boundary fails.",
          "source_ids": [
            "SG-SUPPORT-CNA",
            "SG-CYBER-CNA"
          ]
        }
      ],
      "market_connection": "Plain-English boundary: a pulse explains a state; a prediction needs a separate contract; a historical pattern supplies context only.",
      "history_echo": "CONTEXT_ONLY: the broad dollar series helps define a cross-asset pulse and does not assert today's dollar direction.",
      "historical_data": [
        {
          "record_id": "MPAT-DTWEXBGS-2008-09-26-2008-10-24",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DTWEXBGS",
          "series_name": "Broad U.S. dollar index",
          "family": "Foreign exchange",
          "start_date": "2008-09-26",
          "end_date": "2008-10-24",
          "direction": "UP",
          "change_display": "+12.30%",
          "headline": "Broad U.S. dollar index moved +12.30% across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DTWEXBGS",
          "match_label": "Cross-asset definition aid",
          "comparison": "The broad dollar index helps show that a market pulse can contain currencies as well as oil, rates and shares.",
          "difference": "It defines another channel to check; it does not prove a present dollar direction.",
          "matched_signal_ids": [
            "OTR-30JUL-15-3",
            "OTR-30JUL-15-2"
          ]
        }
      ]
    },
    "Proof": {
      "eyebrow": "PROOF · THE 30 JULY RELEASE RECEIPT",
      "question": "Can today's facts be separated from yesterday's audit?",
      "headline": "This edition has a new release, new window and new signal ledger.",
      "narrative": [
        "The 30 July release published all 330 candidates across 66 engine tasks. 183 passed the current-source and engine-scope gates, while 147 carry a SELF VERIFICATION REQUIRED tag. Every row keeps a direct URL, publisher time, engine-fit receipt and invalidation rule.",
        "The 29 July 300-domain audit remains a frozen historical object. It does not control today's headline, evidence cutoff or status. One publisher report remains one source-linked signal; material editorial claims use a primary source or more than one current route."
      ],
      "beats": [
        {
          "label": "RELEASE",
          "title": "One active 30 July ID",
          "body": "Home, Central Feed, Full Immersive and current JSON routes read the same fresh release.",
          "source_ids": [
            "FED-OFFICIAL",
            "MARKET-AP"
          ]
        },
        {
          "label": "CLAIM",
          "title": "Every material fact has a route",
          "body": "The policy, conflict, earnings and Singapore claims link to named current sources.",
          "source_ids": [
            "IRAN-AP",
            "MSFT-AP",
            "SG-SUPPORT-CNA"
          ]
        },
        {
          "label": "BOUNDARY",
          "title": "Source-linked is not automatically confirmed",
          "body": "A single publisher headline remains labelled as one report until independent evidence supports more.",
          "source_ids": [
            "META-AP",
            "SG-CYBER-CNA"
          ]
        }
      ],
      "market_connection": "Proof state: ACTIVE daily edition, 66 engine tasks, direct-source gates, visible self-verification tags and immutable 29 July history.",
      "history_echo": "CONTEXT_ONLY: the Singapore-dollar record is comparison data and cannot replace today's policy evidence.",
      "historical_data": [
        {
          "record_id": "MPAT-DEXSIUS-1997-12-11-1998-01-12",
          "dataset_id": "OTR-HISTORICAL-MARKET-PATTERNS-2000-2026-07-29",
          "record_type": "HISTORICAL_MARKET_PATTERN",
          "evidence_state": "OBSERVED_DERIVED",
          "use_state": "CONTEXT_ONLY",
          "current_fact_authority": false,
          "series_id": "DEXSIUS",
          "series_name": "Singapore dollar per U.S. dollar",
          "family": "Foreign exchange",
          "start_date": "1997-12-11",
          "end_date": "1998-01-12",
          "direction": "UP",
          "change_display": "+9.98%",
          "headline": "Singapore dollar per U.S. dollar moved +9.98% across 20 available daily observations",
          "source_url": "https://fred.stlouisfed.org/series/DEXSIUS",
          "match_label": "Singapore evidence boundary",
          "comparison": "The Singapore-dollar series provides a long, direct observation record for later market comparison.",
          "difference": "It cannot replace today's Singapore policy sources or turn a local support package into an exchange-rate claim.",
          "matched_signal_ids": [
            "OTR-30JUL-01-1",
            "OTR-30JUL-43-1"
          ]
        }
      ]
    }
  },
  "generation": {
    "mode": "FRESH_DAILY_COLLECTION",
    "run_id": "OTR-DAILY-66-2026-07-30-1904-SGT",
    "completed_at_sgt": "2026-07-31T07:45:00+08:00",
    "source_release_sha256": "0748cb091119fe6abffee3547a74ed4495363d1894c59cce2dcb8c5b0c802b5a",
    "engine_registry_version": "OTR-REGISTRY-66-V1",
    "engine_count": 66,
    "candidate_signal_minimum_per_engine": 5,
    "candidate_signal_maximum_per_engine": 10,
    "candidate_signals_reviewed": 330,
    "accepted_signal_routes": 330,
    "self_verification_required": 147,
    "story_tabs": 10,
    "material_signal_change": true,
    "statement": "The 30 July edition was generated from a fresh current-source collection. It does not replay or relabel the 29 July audit."
  },
  "deterministic_output_sha256": "5a87d7ecb76ab215b395e84526216d96078676fd0fbaef2e850ab1b74039c623"
}
