Module 4 — Trump Political Headlines and Executive Actions

Normative specification. Module 4 is deterministic (no LLM in the scoring path). It authenticates and scores US political / executive-action events (Trump posts, official statements, proposals, signed and effective actions, tariffs, executive orders, Federal Register items), measures their direct company/sector exposure and market impact, and emits affected-scope trading restrictions plus one market-wide adjustment. It does not select a sector/industry/stock, generate an entry/stop/target/order, or close an existing position — those belong to the specialist macro modules, the Main Headline Risk Module / Output 2, the Risk Management / Emergency Exit modules, and the trading bot.

Implementation target: routes/module4.pysnapshots/module4.json (+ a stateful event store .data/module4_events.db), surfaced in a "Module 4" navbar view. It is the Trump/executive-action counterpart to Module 3 (general geopolitical); Module 3 routes Trump-origin headlines here.

Implementation note (v1 ceilings). The scoring below is pure arithmetic, but its inputs (source authentication, event-type classification, entity extraction, exposure mapping) require NLP the spec assumes upstream — an extraction pass (agents/skills/module4_extract.md) produces the structured event record, then Module 4 scores it with zero model calls. v1 implements the generic direct-exposure framework (§9.1) and carries the category-specific impact engines (Part 9) and every Part 15 item as named ceilings. Source authentication tiering (Parts 1–3) depends on an official-source / verified-account allowlist not yet wired, so events cap low until that feed exists. Cross-module handoffs (Part 10) are placeholders until sibling modules exist; only the "→ Module 3" (geopolitical context) route has a live counterpart today.


Part 1 — Master calculation dependency

1.1 Source-Monitoring Engine

1.2 Source-Authentication Engine

1.3 Event-Identity and Deduplication Engine

1.4 Event-Type Classification Engine

1.5 Novelty Engine

1.6 Event-Severity Engine

1.7 Affected-Entity Mapping Engine

1.8 Company-Exposure Engine

1.9 Company-Political-Risk Engine

1.10 Generic Direct-Impact Engine

1.11 Category-Specific Impact Engines

1.12 Event-Direction and Aggregation Engine

1.13 Market-Reaction Engine

1.14 Algorithmic-Move Engine

1.15 Pullback and Retest Engine

1.16 Tariff-Meeting Overlay Engine

1.17 Tariff-Delay and Reversal Overlay Engine

1.19 Event-Duration Engine

1.20 Event-Confidence Engine

1.21 Permission and Position-Size Engine

1.22 Handoff and Double-Counting Engine

1.23 Output 1 Packaging Engine

Part 2 — Direct input parameters

2.1 Global Input Standards

2.2 Module Identification Inputs

2.3 Source and Authentication Inputs

2.4 Event-Content Inputs

2.5 Company-Exposure Inputs

2.6 Market-Data Inputs

2.7 Historical Inputs

2.8 External-Module and Pass-Through Inputs

2.9 Configurable Parameters

Part 3 — Data definitions and validation

3.1 Monitored Source Universe

3.2 Primary-Source Verification

3.3 Secondary-Source Verification

3.4 Monitoring Schedule

3.5 Maximum Data Age

3.6 Trading-Session Definitions

3.7 Provider Consistency

3.8 Duplicate Treatment

3.9 Company-Exposure Validation

3.10 Critical Event-Level Validation Failures

Return EVENT_DATA_STATUS = INVALID when any of the following applies: - No original source URL or identifiable official document URL is available. - The publication timestamp is unavailable. - Account or document authenticity cannot be confirmed. - A repost is mistaken for an original statement. - A general statement is incorrectly represented as a signed action. - A signed order’s effective date or implementation rule is absent when the missing information prevents determination of when the action applies. - The exact policy details required to verify a claimed proposal, signed action or effective action are missing. - The event cannot be linked to a canonical source. - A post-event price is incorrectly timestamped before the event and no valid replacement exists for the affected reaction calculation. - A newer official filing exists but an older filing was used for the same company-exposure field.

3.11 Valid, Degraded and Invalid Status

Check the following conditions in order and stop at the first matching condition: 1. EVENT_DATA_STATUS = INVALID when a critical source, authentication, timestamp or legal-stage field fails. 2. EVENT_DATA_STATUS = DEGRADED when the event is verified but a noncritical field or one or more company records are unavailable. 3. EVENT_DATA_STATUS = VALID when all critical event fields and all required calculations are valid. - COMPANY_DATA_STATUS is calculated separately for every company. - PARTIAL_OUTPUT_STATUS = PARTIAL when valid event outputs are preserved but one or more company, market-reaction or handoff records are unavailable. - PARTIAL_OUTPUT_STATUS = COMPLETE when every required record is available. - PARTIAL_OUTPUT_STATUS = NONE when the event is invalid and no reliable partial calculation remains.

3.12 Invalid-Data Actions

When the event is invalid: - Set TRUMP_EVENT_IMPACT to 0. - Set EVENT_DIRECTION to NEUTRAL. - Set TRUMP_EVENT_CONFIDENCE to INVALID. - Set TRUMP_CONTRIBUTION_STATUS to LIMITED. - Pause new entries only in directly affected companies. - Do not pause the entire trading system unless the main Headline Risk Module declares a market-wide hard warning. - Do not generate a trade. - Do not generate an order. - Preserve unrelated valid handoffs. - Record every missing or invalid field in MISSING_FIELDS and FAILURE_REASON.

3.13 Preliminary, Proposed, Signed and Effective Updates

3.14 Display Rounding

Part 4 — Deterministic calculations

4.1 Event Timestamp Calculation

4.2 Event Identity Calculation

4.3 Source-Verification Calculation

Check the following conditions in order and stop at the first matching condition: 1. SOURCE_VERIFICATION = EFFECTIVE_ACTION when official evidence confirms that the material tariff, sanction, restriction, approval, licence decision, contract action or regulation has taken effect. 2. SOURCE_VERIFICATION = SIGNED_ACTION when a signed implementing order, memorandum, proclamation or final non-effective agency action exists. 3. SOURCE_VERIFICATION = OFFICIAL_PROPOSAL when a proposed rule, formal investigation, Section 232 proceeding, Section 301 proceeding or published formal proposal exists. 4. SOURCE_VERIFICATION = OFFICIAL_STATEMENT when the White House, a fact sheet or a named Cabinet official formally announces administration policy. 5. SOURCE_VERIFICATION = AUTHENTICATED_STATEMENT when an original verified Trump post, recorded interview or official transcript exists. 6. SOURCE_VERIFICATION = UNVERIFIED when none of the preceding conditions pass. - An authenticated general statement may remain valid with LOW confidence. - Missing detailed legal terms cause INVALID only when the event is claimed to be a proposal, signed action or effective action and the missing terms prevent verification.

4.4 Event-Type Calculation

Check the following conditions in order and stop at the first matching condition: 1. EVENT_TYPE = TYPE_5_EFFECTIVE_MATERIAL_ACTION when the material action has taken effect. 2. EVENT_TYPE = TYPE_4_SIGNED_ACTION when a signed implementing action or final non-effective agency action exists. 3. EVENT_TYPE = TYPE_3_OFFICIAL_PROPOSAL when a formal proposal, investigation, proposed rule or official implementation plan exists. 4. EVENT_TYPE = TYPE_2_SPECIFIC_THREAT_OR_COMMITMENT when the statement names a country, sector, company, tariff rate, intended action or deadline, or instructs an agency only to study or review an action. 5. EVENT_TYPE = TYPE_1_POLITICAL_STATEMENT when the statement expresses an opinion, criticism or policy preference without a specific operational instruction. 6. EVENT_TYPE = TYPE_0_RUMOUR when the report is unverified. - A signed document that only orders a study remains Type 2. - A signed document that implements or formally authorises a policy action is Type 4. - When congressional approval is legally required but has not been obtained, EVENT_TYPE may not exceed Type 3. - A signed instruction requiring further agency rulemaking remains SIGNED_NOT_EFFECTIVE until the required agency action becomes effective.

4.5 Base Severity

4.6 Novelty Calculation

4.7 Event Severity

4.8 Exposure-Channel Calculation

4.9 Critical-Dependency Conditions

4.10 Company Exposure Score

Check the following conditions in order and stop at the first matching condition: 1. COMPANY_EXPOSURE_SCORE = 3 when any valid exposure is at least 40%, a critical single-source supplier is affected, a required export licence is threatened, a major government contract is threatened, or a company-specific restriction affects the principal product. 2. COMPANY_EXPOSURE_SCORE = 2 when the highest valid exposure is at least 20% and below 40%. 3. COMPANY_EXPOSURE_SCORE = 1 when the highest valid exposure is at least 10% and below 20%. 4. COMPANY_EXPOSURE_SCORE = 0 when every valid exposure is below 10% and no critical dependency is affected. - Missing company exposure does not produce score 0. - Missing company exposure produces COMPANY_EXPOSURE_SCORE = NOT_CALCULABLE.

4.11 Company Trump Risk

4.12 Critical Risk Override

Set COMPANY_TRUMP_RISK = 15 when any of the following applies: - The company is directly sanctioned. - Its principal product is prohibited. - A critical required export licence is cancelled or withdrawn. - At least 20% of expected annual revenue becomes immediately unavailable. - A proposed or threatened critical licence restriction does not automatically set risk to 15. - A proposed restriction receives company impact minus 2 when applicable, but numerical risk continues through the normal severity and exposure calculation. - Only effective cancellation, withdrawal or prohibition triggers the export-licence risk override.

4.13 Price-Change Calculation

4.14 RVOL Calculation

4.15 VWAP Position

4.16 Positive Price Confirmation

Positive confirmation requires all of the following: - The affected stock or sector is at least 2% above the pre-event reference price. - The affected stock or sector is above the applicable VWAP. - RVOL is at least 1.50. - When a rule requires both stock and sector confirmation, both instruments must pass independently.

4.17 Negative Price Confirmation

Negative confirmation requires all of the following: - The affected stock or sector is at least 2% below the pre-event reference price. - The affected stock or sector is below the applicable VWAP. - RVOL is at least 1.50. - When a rule requires both stock and sector confirmation, both instruments must pass independently.

4.18 Price-Confirmation Timing

4.19 Price-Confirmation Status

Check the following conditions in order and stop at the first matching condition: 1. PRICE_REACTION_CONFIRMATION = PENDING when no valid trading session or eligible checkpoint exists. 2. PRICE_REACTION_CONFIRMATION = MIXED when stock and required sector confirmation disagree. 3. PRICE_REACTION_CONFIRMATION = POSITIVE_CONFIRMED when all positive conditions pass. 4. PRICE_REACTION_CONFIRMATION = NEGATIVE_CONFIRMED when all negative conditions pass. 5. PRICE_REACTION_CONFIRMATION = NEUTRAL when the unrounded price change is greater than minus 2% and less than plus 2%. 6. PRICE_REACTION_CONFIRMATION = UNCONFIRMED when the price reaches or exceeds the 2% directional threshold but VWAP or RVOL fails. - PRICE_REACTION_CONFLICT = TRUE when price confirmation opposes the calculated event direction or when stock and sector directions conflict.

4.20 Algorithmic Move

Calculate the absolute 2-minute percentage move for every affected stock and sector instrument. Check the following conditions in order and stop at the first matching condition: 1. ALGO_MOVE_STATUS = SEVERE when any required instrument moves by at least 5% in absolute terms within 2 minutes. 2. ALGO_MOVE_STATUS = EXTENDED when any required instrument moves by at least 3% but less than 5% in absolute terms within 2 minutes. 3. ALGO_MOVE_STATUS = NOT_EXTENDED when every valid required instrument moves by less than 3%. 4. ALGO_MOVE_STATUS = PENDING when required 2-minute prices are unavailable. - When stock and sector statuses differ, use the more restrictive status. - SEVERE and EXTENDED both require a minimum 15-minute wait because no longer source-based waiting period was supplied.

4.21 Initial-Move and Retracement Calculation

For a bullish initial move: - INITIAL_MOVE_AMOUNT = FIRST_15_MINUTE_HIGH minus PRE_EVENT_REFERENCE_PRICE. - RETRACEMENT_AMOUNT = FIRST_15_MINUTE_HIGH minus CURRENT_CHECKPOINT_PRICE. - RETRACEMENT_PERCENT = RETRACEMENT_AMOUNT divided by INITIAL_MOVE_AMOUNT, multiplied by 100. For a bearish initial move: - INITIAL_MOVE_AMOUNT = PRE_EVENT_REFERENCE_PRICE minus FIRST_15_MINUTE_LOW. - RETRACEMENT_AMOUNT = CURRENT_CHECKPOINT_PRICE minus FIRST_15_MINUTE_LOW. - RETRACEMENT_PERCENT = RETRACEMENT_AMOUNT divided by INITIAL_MOVE_AMOUNT, multiplied by 100. - Do not calculate a bullish retracement when the initial bullish move is 0 or negative. - Do not calculate a bearish retracement when the initial bearish move is 0 or negative.

4.22 Retracement Classification

Check the following conditions in order and stop at the first matching condition: 1. HEADLINE_MOMENTUM_STATUS = FAILED_OR_UNCONFIRMED when RETRACEMENT_PERCENT is greater than 60%. 2. HEADLINE_MOMENTUM_STATUS = RETRACEMENT_VALID when RETRACEMENT_PERCENT is at least 25% and no more than 60%, and price remains on the correct side of VWAP. 3. HEADLINE_MOMENTUM_STATUS = RETRACEMENT_INSUFFICIENT when RETRACEMENT_PERCENT is below 25%. 4. HEADLINE_MOMENTUM_STATUS = PENDING when the required high, low, price or VWAP is unavailable. - For a bearish event, the bounce must fail and price must remain below VWAP. - The Stock Setup Engine decides whether an actual continuation or reversal setup exists.

Part 5 — Descriptive bands

5.1 Event Severity Bands

5.2 Trump Event Impact Scale

5.3 Company Exposure Bands

5.4 Company Risk Bands

5.5 Data Bands

5.6 Confidence Bands

5.7 Permission Bands

Part 6 — Helper conditions

6.1 VERIFIED_EVENT

VERIFIED_EVENT is TRUE when: - SOURCE_VERIFICATION is not UNVERIFIED. - EVENT_DATA_STATUS is not INVALID.

6.2 MEASURABLE_DIRECT_EXPOSURE

MEASURABLE_DIRECT_EXPOSURE is TRUE when: - At least 1 official company, industry or sector exposure field has a defined denominator. - The relevant exposure is numerical. - The field is not stale. - The field is not inferred from general media.

6.3 CRITICAL_DEPENDENCY_AFFECTED

CRITICAL_DEPENDENCY_AFFECTED is TRUE when any of the following applies: - Critical single-source supplier affected. - Required export licence threatened or cancelled. - Major government contract threatened or cancelled. - Principal product directly restricted. - Critical subsidy or tax credit directly removed.

6.4 EQUIVALENT_EVENT

EQUIVALENT_EVENT is TRUE when: - Policy instrument is unchanged. - Target country or entity is unchanged. - Product scope is unchanged. - Policy direction is unchanged. - Tariff rate, deadline and effective date are not materially changed.

6.5 ESCALATION_EVENT

ESCALATION_EVENT is TRUE when any of the following applies: - Tariff rate rises by at least 5 percentage points. - Additional products are included. - Additional countries are included. - A restriction becomes legally or operationally more restrictive. - The effective date is brought forward.

6.6 VALID_TARIFF_EVENT

VALID_TARIFF_EVENT is TRUE when: - The event is a specific official proposal, signed action or effective action. - At least 1 product, country or tariff rate is specified. - The source is verified. - A scheduled meeting by itself does not satisfy this condition.

6.7 DOMESTIC_TARIFF_BENEFICIARY

DOMESTIC_TARIFF_BENEFICIARY is TRUE only when: - The tariff directly covers competing imported products. - The company produces the affected competing product domestically. - Domestic competing production represents at least 10% of company revenue or productive capacity. - Tariffed imported inputs are below 10% of cost of goods sold. - Retaliatory foreign-revenue exposure is below 10%. - Every condition must pass.

6.8 POSITIVE_PRICE_CONFIRMED

POSITIVE_PRICE_CONFIRMED is TRUE when: - Price change is at least plus 2%. - Price is above the applicable VWAP. - RVOL is at least 1.50. - Every instrument required by the category-specific rule passes.

6.9 NEGATIVE_PRICE_CONFIRMED

NEGATIVE_PRICE_CONFIRMED is TRUE when: - Price change is no more than minus 2%. - Price is below the applicable VWAP. - RVOL is at least 1.50. - Every instrument required by the category-specific rule passes.

6.10 TARIFF_MEETING_ACTIVE

TARIFF_MEETING_ACTIVE is TRUE when: - A formal negotiation or decision event is officially scheduled. - The event concerns an active tariff or trade restriction. - The affected company has exposure score 2 or 3. - The current time is inside the defined restriction window or the official outcome is still unresolved.

6.11 CONFIRMED_TARIFF_DELAY

CONFIRMED_TARIFF_DELAY is TRUE when: - The delay is officially announced. - The effective date is delayed by at least 7 calendar days.

6.12 CONFIRMED_TARIFF_ROLLBACK

CONFIRMED_TARIFF_ROLLBACK is TRUE when any of the following applies: - The tariff is reduced by at least 5 percentage points. - A product or country is formally exempted. - The tariff is formally cancelled. - The source is official.

6.13 PARTIAL_TARIFF_ROLLBACK

PARTIAL_TARIFF_ROLLBACK is TRUE when: - The tariff is reduced by at least 5 percentage points but remains in force. - Or only part of the product or country scope is exempted.

6.14 FULL_TARIFF_CANCELLATION

FULL_TARIFF_CANCELLATION is TRUE when: - The tariff is removed for the complete affected scope.

6.15 CAN_RESUME_AFTER_TARIFF_MEETING

CAN_RESUME_AFTER_TARIFF_MEETING is TRUE only when: - An official outcome is published. - The event has been processed. - At least 15 minutes of valid market data are available. - No inherited or separate module pause remains active.

6.16 INHERITED_PAUSE_ACTIVE

INHERITED_PAUSE_ACTIVE is TRUE when: - Any connected higher-priority module supplies an active pause. - This module may extend the pause. - This module may not cancel or shorten it.

Part 7 — Regime or decision order

7.1 Source Verification Order

Check the following conditions in order and stop at the first matching condition: 1. Effective action. 2. Signed action. 3. Official proposal. 4. Official administration statement. 5. Authenticated statement. 6. Unverified.

7.2 Event-Type Order

Check the following conditions in order and stop at the first matching condition: 1. Effective material action. 2. Signed implementing action. 3. Official proposal or investigation. 4. Specific threat, commitment, deadline or study instruction. 5. General political statement. 6. Rumour.

7.3 Novelty Order

Check the following conditions in order and stop at the first matching primary status: 1. Reversal or cancellation. 2. Formal exemption. 3. Delay of at least 7 days. 4. Escalation. 5. First mention. 6. Repetition. 7. Unchanged or not applicable. - Record additional compatible novelty flags in NOVELTY_FLAG_LIST. - Apply no more than 1 numerical novelty adjustment.

7.4 Impact-Rule Priority

Check the following conditions in order and stop at the first matching condition: 1. Data-invalid neutralisation. 2. Legal stay, injunction or final cancellation. 3. Critical company override. 4. Category-specific impact rule. 5. Generic direct-exposure impact rule. 6. Neutral impact of 0. - Category-specific rules override the generic framework. - A category-specific maximum may not be exceeded by the generic rule.

7.5 Confidence Order

Check the following conditions in order and stop at the first matching condition: 1. INVALID when a critical verification or data failure exists. 2. HIGH when a signed or effective action has measurable direct exposure and confirming price. 3. MEDIUM when an official proposal has measurable direct exposure and no opposing confirmed price reaction. 4. MEDIUM when a signed or effective action has measurable exposure but neutral, unavailable or unconfirmed price reaction. 5. MEDIUM when an authenticated specific threat has measurable exposure and confirming price. 6. LOW for every other verified statement, threat or incomplete-exposure event. - An opposing confirmed reaction prevents HIGH confidence. - Legal uncertainty lowers confidence by 1 level. - HIGH becomes MEDIUM. - MEDIUM becomes LOW. - LOW remains LOW. - INVALID cannot be raised by legal-status treatment.

7.6 Permission Priority

Check the following conditions in order and stop at the first matching condition for each affected company: 1. Inherited market-wide hard pause. 2. Company-level invalid-data pause. 3. Extreme company risk. 4. Active legal prohibition or direct sanction. 5. Severe or extended algorithmic move. 6. Active tariff-meeting restriction. 7. High company risk. 8. Moderate company risk. 9. Low or 0 company risk. - The most restrictive active condition always wins. - A specialist module may impose an additional pause but may not cancel an existing pause.

Part 8 — Short-term, event or market overlays

8.1 Algorithmic-Move Overlay

8.2 Pullback Overlay

8.3 Tariff-Meeting Overlay

8.4 Tariff Delay and Reversal Overlay

8.5 Scheduled Non-Tariff Event Overlay

8.7 Temporary Headline Overlay and Continuing Policy State

8.8 Market-Regime Overlay

Part 9 — Score, impact or outcome calculation

9.1 Generic Direct-Exposure Framework

Use this framework only when no more specific category rule exists. - Type 0 rumour impact = 0. - Type 1 general statement impact = 0. - Type 2 specific threat or commitment impact = 0 unless a specific company-callout rule applies. - Type 3, Type 4 or Type 5 direct beneficial exposure below 10% = 0. - Type 3, Type 4 or Type 5 direct beneficial exposure from 10% to below 20% = plus 1. - Type 3, Type 4 or Type 5 direct beneficial exposure of at least 20% or a critical direct benefit = plus 2. - Type 3, Type 4 or Type 5 direct harmful exposure below 10% = 0. - Type 3, Type 4 or Type 5 direct harmful exposure from 10% to below 20% = minus 1. - Type 3, Type 4 or Type 5 direct harmful exposure of at least 20% or a critical direct restriction = minus 2. - Apply this framework to otherwise undefined tax, fiscal-spending, infrastructure, immigration, healthcare, sanctions, foreign-policy, environmental and general-regulatory actions. - Do not assign a broad sector point when measurable direct exposure is unavailable.

9.2 Event-Level Impact Aggregation

9.3 Sector and Industry Aggregation

9.4 Tariff-Status Calculation

Permitted TARIFF_STATUS values: - NOT_APPLICABLE. - RUMOUR. - STATEMENT. - THREAT. - INVESTIGATION. - OFFICIAL_PROPOSAL. - SIGNED_NOT_EFFECTIVE. - EFFECTIVE. - DELAYED. - EXEMPTED. - PARTIALLY_ROLLED_BACK. - FULLY_CANCELLED. - A specific Trump threat containing a tariff rate is Type 2 and TARIFF_STATUS = THREAT. - A threat is not an official tariff action. - A threat receives no general tariff-direction point unless a specific company-callout rule applies. - SECTION_232_STATUS and SECTION_301_STATUS use the same permitted status list.

9.5 General Tariff Impact

For each company, calculate separately: - Imported-input exposure. - Imported finished-goods exposure. - Foreign revenue exposed to retaliation. - Domestic competing-production exposure. Assign direct harmful impact: - Highest valid direct cost or revenue exposure below 10% = 0. - Highest valid direct cost or revenue exposure from 10% to below 20% = minus 1. - Highest valid direct cost or revenue exposure of at least 20% = minus 2. Assign domestic-beneficiary impact: - Plus 1 only when every DOMESTIC_TARIFF_BENEFICIARY condition passes. - Maximum general domestic-beneficiary impact is plus 1. - Do not classify every domestic manufacturer as a beneficiary. - Company headquarters are not an exposure measure.

9.6 Steel and Aluminium

Domestic primary producers: - Confirmed tariff proposal on competing imports = plus 1. - Effective tariff of at least 10% on competing imports = plus 1. - Maximum impact = plus 1. Steel and aluminium users: - Tariffed metal cost exposure below 10% = 0. - Exposure from 10% to below 20% = minus 1. - Exposure of at least 20% = minus 2. - Do not assign the entire industrial sector a positive point.

9.7 Automobile Manufacturers

Calculate separately: - Imported finished-vehicle exposure. - Imported component exposure. - Domestic production exposure. - Foreign revenue exposed to retaliation. Use the highest harmful exposure channel: - Below 10% = 0. - At least 10% and below 20% = minus 1. - At least 20% = minus 2. - Do not add exposure percentages with different denominators. - Do not assume that a US-headquartered manufacturer benefits.

9.8 Retail and Apparel

Calculate: - China sourcing exposure. - Other tariffed-country sourcing exposure. - Officially quantified pricing power when available. - Officially quantified gross-margin sensitivity when available. Assign: - Tariffed sourcing below 10% = 0. - Tariffed sourcing from 10% to below 20% = minus 1. - Tariffed sourcing of at least 20% = minus 2. - Descriptive pricing power or margin sensitivity contributes 0 unless officially quantified. - Company headquarters may not substitute for sourcing data.

9.9 Semiconductors and Export Controls

Assign: - Affected China revenue below 10% = 0. - Affected China revenue from 10% to below 20% = minus 1. - Affected China revenue of at least 20% = minus 2. - An official proposal restricting a critical required export licence gives company impact minus 2. - A threat or announced licence review uses normal severity multiplied by exposure for company risk. - Effective cancellation, withdrawal or prohibition of a required critical licence sets company risk to 15. - Do not award positive points to domestic semiconductor companies unless a signed procurement, subsidy or contract directly benefits them. - Pass confirmed export-control actions to the main Headline Risk Module.

9.10 Solar and Renewable Supply Chains

Assign negative points only when an official action affects imported panels, cells, wafers, inverters, batteries, critical minerals, tax credits, subsidies or permitting. - Affected cost or revenue exposure below 10% = 0. - Exposure from 10% to below 20% = minus 1. - Exposure of at least 20% = minus 2. - General fossil-fuel rhetoric gives renewable-sector impact 0. - General criticism of renewable energy gives renewable impact 0.

9.11 Energy Policy

9.12 Defence Policy

9.13 Pharmaceutical Policy

9.14 Finance and Banking Policy

9.15 Cryptocurrency Policy

9.16 Federal Reserve Criticism

9.17 Media and Technology Company Callouts

9.18 TikTok Policy

9.19 Artificial-Intelligence Policy

9.20 Immigration and Labour Policy

9.21 Tax, Fiscal Spending and Infrastructure

9.22 Healthcare Outside Pharmaceuticals

9.23 Sanctions and Foreign Policy

9.24 General Federal Regulation or Deregulation

9.25 Congressional Trading Data

9.26 Company-Level Permission and Position-Size Calculation

Check the following conditions in order and stop at the first matching risk band: Risk from 10 through 15 - COMPANY_POSITION_SIZE_CAP = 0%. - NEW_ENTRY_STATUS = PAUSED. - OVERNIGHT_PERMISSION = NO. - LEVERAGED_OVERNIGHT_PERMISSION = NO. - MOMENTUM_ENTRY_PERMISSION = NO. - BREAKOUT_PERMISSION = NO. - RETEST_PERMISSION = NO. Risk from 6 through 9 - COMPANY_POSITION_SIZE_CAP = 50%. - NEW_ENTRY_STATUS = RESTRICTED. - OVERNIGHT_PERMISSION = RESTRICTED. - LEVERAGED_OVERNIGHT_PERMISSION = NO. - MOMENTUM_ENTRY_PERMISSION = NO. - BREAKOUT_PERMISSION = NO. - RETEST_PERMISSION = ALLOWED_FOR_REVIEW. Risk from 3 through 5 - COMPANY_POSITION_SIZE_CAP = 75%. - NEW_ENTRY_STATUS = RESTRICTED. - OVERNIGHT_PERMISSION = RESTRICTED. - LEVERAGED_OVERNIGHT_PERMISSION = NO. - MOMENTUM_ENTRY_PERMISSION = ALLOWED_FOR_REVIEW. - BREAKOUT_PERMISSION = ALLOWED_FOR_REVIEW. - RETEST_PERMISSION = ALLOWED_FOR_REVIEW. Risk from 1 through 2 - COMPANY_POSITION_SIZE_CAP = 100%. - NEW_ENTRY_STATUS = ALLOWED_FOR_REVIEW. - OVERNIGHT_PERMISSION = ALLOWED. - LEVERAGED_OVERNIGHT_PERMISSION = ALLOWED unless another rule prohibits it. - MOMENTUM_ENTRY_PERMISSION = ALLOWED_FOR_REVIEW. - BREAKOUT_PERMISSION = ALLOWED_FOR_REVIEW. - RETEST_PERMISSION = ALLOWED_FOR_REVIEW. Risk 0 - Apply the same permissions as risk 1 through 2. - ALLOWED_FOR_REVIEW does not mean TRADE_APPROVED.

9.27 Module Position-Size Cap

Part 10 — Handoffs and double-counting controls

10.1 Main Headline Risk Module

10.2 Market Regime Module

10.3 Oil and Energy Complex Module

10.4 Currency Module

10.5 Central-Bank Event Module

10.6 Gold Module

10.7 Treasury Yield Module

10.8 Volatility Module

10.9 Employment and Labour Market Module

10.10 Geopolitical Risk Module

10.11 Stock Risk and Stock Setup Engines

10.12 Output 2

10.13 Missing Handoff Treatment

Part 11 — Hard overrides

11.1 Direct Company Critical Override

Trigger: - Direct sanction. - Principal-product prohibition. - Critical export-licence cancellation. - At least 20% of expected annual revenue immediately unavailable. Effect: - COMPANY_TRUMP_RISK = 15. - COMPANY_RISK_CLASS = EXTREME. - COMPANY_POSITION_SIZE_CAP = 0%. - NEW_ENTRY_STATUS = PAUSED. - Existing positions are not automatically closed. - Existing positions receive EXISTING_POSITION_REVIEW_REQUIRED = TRUE.

11.2 Invalid Company-Data Override

Trigger: - Named company exposure is missing or invalid. Effect: - Company impact = 0. - Company risk = NOT_CALCULABLE. - Company confidence = INVALID. - Company position-size cap = 0% for a new position. - New entries in that company are PAUSED. - Event-level and unrelated company calculations may continue.

11.3 Invalid Event-Data Override

Trigger: - Critical source, authentication, timestamp or legal-stage failure. Effect: - Event impact = 0. - Event direction = NEUTRAL. - Event confidence = INVALID. - Contribution status = LIMITED. - Directly affected companies are paused. - No market-wide pause is created unless the main Headline Risk Module declares it.

11.4 Inherited Hard-Warning Override

Trigger: - Another authorised module supplies an active hard warning or pause. Effect: - Preserve the pause. - This module may extend but may not cancel it. - A lower Trump risk or positive event cannot restore permission.

11.5 Extreme Algorithmic-Move Restriction

Trigger: - ALGO_MOVE_STATUS is EXTENDED or SEVERE. Effect: - Market-order entry = NO. - Immediate chase entry = NO. - Earliest review = 15 minutes after event. - Pullback or retest is required. - This does not automatically close an existing position.

11.6 Order-Cancellation Boundary

Part 12 — Execution order

  1. Load module configuration, provider configuration, allowlists and official trading calendar.
  2. Determine the active monitoring interval.
  3. Scan authenticated official sources.
  4. Capture the original statement, source identifiers and publication timestamp.
  5. Authenticate the source.
  6. Generate the canonical EVENT_ID and POLICY_SCOPE_ID.
  7. Exclude exact duplicate records.
  8. Determine legal text, implementation status, congressional approval and legal-challenge status.
  9. Classify the event from Type 0 through Type 5.
  10. Determine BASE_SEVERITY.
  11. Compare the event with the preceding 30-day event history.
  12. Classify novelty, escalation, repetition, delay, exemption or reversal.
  13. Calculate NOVELTY_ADJUSTMENT.
  14. Calculate TRUMP_EVENT_SEVERITY.
  15. Identify affected countries, products, sectors, industries and companies.
  16. Load company-exposure data only for named, legally identified, held or externally supplied companies.
  17. Validate each exposure field and denominator.
  18. Calculate each company exposure channel separately.
  19. Calculate COMPANY_EXPOSURE_SCORE.
  20. Calculate normal COMPANY_TRUMP_RISK.
  21. Apply critical company-risk overrides.
  22. Apply the relevant category-specific policy-impact rule.
  23. Use the generic direct-exposure framework only when no specific category rule exists.
  24. Create company, industry and sector-impact records.
  25. Aggregate event direction without adding repeated company points.
  26. Capture the valid pre-event reference price.
  27. Capture 2-, 5-, 15-, 30- and 60-minute prices.
  28. Calculate price changes.
  29. Calculate VWAP position and RVOL.
  30. Classify the 2-minute algorithmic move.
  31. Enforce the 15-minute minimum waiting period when required.
  32. Calculate retracement after an extended or severe move.
  33. Calculate price confirmation without adding another impact point.
  34. Apply legal-stay, implementation and congressional-approval rules.
  35. Apply tariff-meeting restrictions when active.
  36. Apply tariff delay, exemption or reversal calculations.
  37. Calculate event confidence.
  38. Calculate event-overlay expiry and continuing policy-state revalidation.
  39. Calculate every company-specific permission and position-size cap.
  40. Apply inherited pauses and the most restrictive condition.
  41. Create handoff packets.
  42. Pass the event once to the main Headline Risk Module.
  43. Do not send the raw Trump risk separately to the central Macro Risk Engine.
  44. Do not use congressional disclosures as predictive inputs.
  45. Set TRADE_APPROVED = FALSE.
  46. Set ORDER_GENERATED = FALSE.
  47. Produce Module 4 Output 1.
  48. Calculate NEXT_RECALCULATION_TIME.

Part 13 — Non-calculative constraints

Part 14 — Required output 1

14.1 Module Identification

14.2 Data Reliability

14.3 Event Identification

14.5 Novelty and Severity

14.6 Affected Entities

14.7 Event Direction and Impact

14.8 Tariff Outputs

14.9 Company Record List

Each COMPANY_RECORD_LIST entry must contain: - COMPANY_ID. - COMPANY_TICKER. - COMPANY_DATA_STATUS. - COMPANY_EXPOSURE_SOURCE_URL. - COMPANY_EXPOSURE_SOURCE_DATE. - COMPANY_EXPOSURE_MEASUREMENT_PERIOD. - COMPANY_COUNTRY_REVENUE_PERCENT. - COMPANY_MANUFACTURING_CAPACITY_PERCENT. - COMPANY_SUPPLIER_EXPOSURE_PERCENT. - COMPANY_CUSTOMER_EXPOSURE_PERCENT. - COMPANY_IMPORT_EXPOSURE_PERCENT. - COMPANY_IMPORTED_INPUT_PERCENT_COGS. - COMPANY_IMPORTED_FINISHED_GOODS_PERCENT. - COMPANY_EXPORT_EXPOSURE_PERCENT. - COMPANY_FOREIGN_REVENUE_RETALIATION_PERCENT. - COMPANY_DOMESTIC_COMPETING_PRODUCTION_PERCENT. - COMPANY_GOVERNMENT_REVENUE_PERCENT. - COMPANY_DEFENCE_CONTRACT_PERCENT_PRIOR_YEAR_SEGMENT_REVENUE. - COMPANY_PRODUCT_REVENUE_PERCENT. - COMPANY_PRODUCT_CAPACITY_PERCENT. - COMPANY_REVENUE_BECOMING_UNAVAILABLE_PERCENT. - COMPANY_REGULATORY_DEPENDENCY. - COMPANY_SUBSIDY_DEPENDENCY. - COMPANY_TAX_CREDIT_DEPENDENCY. - COMPANY_EXPORT_LICENCE_DEPENDENCY. - COMPANY_CRITICAL_PRODUCT_DEPENDENCY. - COMPANY_EXPOSURE_CHANNEL_LIST. - COMPANY_EXPOSURE_SCORE. - COMPANY_IMPACT. - COMPANY_TRUMP_RISK. - COMPANY_RISK_CLASS. - COMPANY_POSITION_SIZE_CAP. - COMPANY_NEW_ENTRY_STATUS. - COMPANY_OVERNIGHT_PERMISSION. - COMPANY_LEVERAGED_OVERNIGHT_PERMISSION. - COMPANY_MOMENTUM_ENTRY_PERMISSION. - COMPANY_BREAKOUT_PERMISSION. - COMPANY_RETEST_PERMISSION. - COMPANY_EXISTING_POSITION_REVIEW_REQUIRED. - COMPANY_CANCEL_UNFILLED_ORDERS_REQUEST.

14.10 Market-Reaction Outputs

14.11 Fixed Sector Compatibility Outputs

14.12 Confidence, Risk and Permission

14.13 Restrictions and Overrides

14.14 Handoffs

14.15 Congressional Data

14.16 Recalculation and Audit

Part 15 — Items not fully defined in the source information

15.1 Exact Official-Source Allowlist

  1. Missing information: The exact verified account IDs, government domains and approved secondary-news organisations are not listed.
  2. Why this matters: The bot cannot authenticate a source solely from a general description such as “official account” or “established news organisation.”
  3. Safest neutral treatment: Sources absent from the configured allowlist remain UNVERIFIED until manually or independently validated.
  4. Classification: NOT DEFINED.

15.2 Named Live Market-Data Provider

  1. Missing information: The project’s approved primary live market-data provider is not named in this module.
  2. Why this matters: Prices, VWAP and RVOL cannot be calculated without a designated provider.
  3. Safest neutral treatment: Market-reaction outputs remain PENDING and cannot raise confidence until the approved provider is configured.
  4. Classification: NOT DEFINED.

15.3 Named Company-Filing Data Provider

  1. Missing information: The system responsible for retrieving and normalising annual reports, quarterly reports and official company disclosures is not named.
  2. Why this matters: Company exposure cannot be calculated automatically without a reliable filing source and field-mapping process.
  3. Safest neutral treatment: Use only manually supplied or directly retrieved official filings; otherwise set the affected company record to INVALID and pause new entries in that company.
  4. Classification: NOT DEFINED.

15.4 Approved Sector and Industry Instrument Map

  1. Missing information: The exact ETF or instrument used to confirm every sector and industry is not supplied.
  2. Why this matters: Sector confirmation and mixed stock-versus-sector reaction cannot be calculated without a fixed mapping.
  3. Safest neutral treatment: Preserve company impact, set sector confirmation to PENDING and do not activate any impact that explicitly requires sector confirmation.
  4. Classification: NOT DEFINED.

15.5 Stock-Universe Liquidity Rule

  1. Missing information: The complete global definition of an “eligible affected liquid stock” is not included in this module.
  2. Why this matters: The two-stock tariff-reversal confirmation cannot be completed.
  3. Safest neutral treatment: The tariff-reversal impact may not exceed plus 1 until the external liquidity rule confirms at least 2 eligible stocks.
  4. Classification: CONTROLLED BY ANOTHER MODULE.

15.6 Final Market-Wide Hard-Warning Criteria

  1. Missing information: The criteria used by the main Headline Risk Module to create a market-wide hard warning are not part of this module.
  2. Why this matters: Module 4 cannot determine whether the entire system must pause.
  3. Safest neutral treatment: Pause only directly affected companies. Pass the event to the main Headline Risk Module.
  4. Classification: CONTROLLED BY ANOTHER MODULE.

15.7 Final Cross-Module Position Size

  1. Missing information: The final calculation combining all module position-size caps has not yet been built.
  2. Why this matters: Module 4 cannot determine the final trading-bot position size by itself.
  3. Safest neutral treatment: Output only the Trump-specific cap. Output 2 later applies the smallest valid cap.
  4. Classification: CONTROLLED BY OUTPUT 2.

15.8 Final Trade-Approval Engine

  1. Missing information: The future Trading Decision and Risk Engine that owns final trade approval is not yet defined.
  2. Why this matters: This module cannot convert an event result into an approved order.
  3. Safest neutral treatment: TRADE_APPROVED remains FALSE and ORDER_GENERATED remains FALSE.
  4. Classification: CONTROLLED BY ANOTHER MODULE.

15.9 Numerical Country Impact

  1. Missing information: The source requires affected countries to be identified but does not supply a numerical country-impact scale.
  2. Why this matters: A country score cannot be calculated without adding a new unsupported framework.
  3. Safest neutral treatment: Output the country, policy direction and descriptive effect only. Country numerical contribution remains 0.
  4. Classification: NOT DEFINED.

15.10 Historical Normalised Reaction Score

  1. Missing information: No historical-normal-reaction bands or instrument weights are supplied for a combined normalised reaction score.
  2. Why this matters: The module cannot calculate a weighted historical-reaction score without invented weights.
  3. Safest neutral treatment: Use only the accepted fixed 2%, 3%, 5%, VWAP and RVOL thresholds. Combined historical-reaction score remains NOT_CALCULATED.
  4. Classification: NOT DEFINED.