Trade Surveillance Agent

Research prototype

Synthetic firm policy, not a supervisory system of record, and not legal or compliance advice. See the regulatory basis.
All sample cases

Sample case

A synthetic trade checked against synthetic firm policy. The people and the company are invented.

Case 1: Sale just before earnings

Chief Financial Officer sells $400,000 of stock 2 days before earnings

Selling before earnings is the classic warning sign, but a filing alone can't show whether the insider knew anything. The right outcome is a flag for a human to review, not an accusation.

Reasons for concern

  • The sale falls inside a blackout window (Jul 10, 2025 to Jul 22, 2025) around earnings news on Jul 20, 2025.
  • Trading just before results are public is exactly what blackout windows exist to prevent.

What could explain it

  • The filing doesn't say whether the sale was pre-planned. Its 10b5-1 status is not established, which is different from there being no plan.
  • Size is not the issue: $400,000 is well under the $10,000,000 single-trade limit for this role.

Answer key

Flag for review

Set when the scenario was designed. A rules-based reference investigation reaches it from the evidence.

AI investigator

EscalateDiffers from the answer key

Recorded live run on 2026-11-01 using gpt-4o-2024-08-06 and gpt-4o-mini-2024-07-18, costing $0.045.

What the safeguards reported

Claims check
2 of 4 claims judged supported
Citations
2 of 4 claims cite no evidence
Required checks
6 of 6 run
Human review required

A recorded run of the AI investigator

The conclusion and the claims below were written by the model. The checks beside them are code and a separate judging model.

What decides this case

Was news about to come out?

Inside a blackout window

Trade on Jul 18, 2025. The blackout runs Jul 10, 2025 to Jul 22, 2025, around earnings news on Jul 20, 2025.

View source result call_RyLivN0lAv2PpYsEXuFfDkiT

get_material_events({"issuer_cik":"0000320193","on_date":"2025-07-18"})

{
  "issuer_cik": "0000320193",
  "on_date": "2025-07-18",
  "in_blackout": true,
  "event_type": "earnings",
  "event_date": "2025-07-20",
  "blackout_start": "2025-07-10",
  "blackout_end": "2025-07-22"
}

Was news about to come out?

Inside a blackout window

Trade on Jul 19, 2025. The blackout runs Jul 10, 2025 to Jul 22, 2025, around earnings news on Jul 20, 2025.

View source result call_d2V8QfjqF1Dv3T9ybxapIu60

get_material_events({"issuer_cik":"0000320193","on_date":"2025-07-19"})

{
  "issuer_cik": "0000320193",
  "on_date": "2025-07-19",
  "in_blackout": true,
  "event_type": "earnings",
  "event_date": "2025-07-20",
  "blackout_start": "2025-07-10",
  "blackout_end": "2025-07-22"
}

The trade as filed

Filed on time

SCENARIO OFFICER ONE, Chief Financial Officer of Acme Corp (ACME)

  • SSale4,000 shares × $100 = $400,000Jul 18, 2025
Filed
Jul 19, 2025 (Form 4), 1 trading day after the trade
Trading plan
10b5-1 status: not established
View source result call_4ZziXItuSZsE1y4llz8sfL9J

get_transaction_details({"accession_number":"SCENARIO-0000000001-25-000001"})

{
  "accession_number": "SCENARIO-0000000001-25-000001",
  "issuer_cik": "0000320193",
  "issuer_name": "Acme Corp",
  "issuer_ticker": "ACME",
  "filing_date": "2025-07-19",
  "document_type": "4",
  "reported_under_10b5_1": "unknown",
  "filing_lag_trading_days": 1,
  "rptowner_cik": "9000000001",
  "rptowner_name": "SCENARIO OFFICER ONE",
  "rptowner_relationship": "Officer",
  "rptowner_title": "Chief Financial Officer",
  "transactions": [
    {
      "nonderiv_trans_sk": 1,
      "trans_date": "2025-07-18",
      "trans_code": "S",
      "trans_shares": 4000,
      "trans_priceper_share": 100,
      "trans_value": 400000,
      "trans_acquired_disp_cd": "D",
      "shrs_ownd_folwng_trans": null,
      "superseded": false,
      "superseded_by": null
    }
  ],
  "transaction_count": 1
}

Other evidence reviewed

What this role may trade

Within the limit
Largest trade: $400,000Single-trade limit: $10,000,000
Role
Officer (Executive)
Single-trade limit
$10,000,000
Rolling 90-day limit
$50,000,000
Blackout restrictions
High
View source result call_td87qhZJBmFWXkySSj13V9D4

get_applicable_role_limits({"relationship":"Officer","title":"Chief Financial Officer"})

{
  "relationship": "Officer",
  "authorization_level": "Executive",
  "single_trade_limit": 10000000,
  "rolling_90d_limit": 50000000,
  "blackout_restrictions": "High",
  "currency": "USD"
}

Firm rules checked

  • R003Unusual Sale Pattern (Rapid Trading)Medium
  • R006High Volume Spike vs. Own BaselineMedium
  • R008Reported Rule 10b5-1 Plan (severity reducer)Low
  • R009Tax-Withholding Disposition (Code F, severity reducer)Low
  • R010Option Exercise (Code M, severity reducer)Low
  • R001Single Trade Limit ExceededHigh
  • R002Rolling 90-Day Volume ExceededHigh
  • R007Late Section 16(a) Filing (> 2 trading days)High
  • R004Large Sale After Recent AcquisitionCritical
  • R005Suspicious Timing Near EarningsCritical
View source result call_d9aAEruB6YSGyWUB05iPiaCO

get_compliance_rules({})

[
  {
    "rule_id": "R003",
    "rule_name": "Unusual Sale Pattern (Rapid Trading)",
    "threshold_value": 3,
    "rule_type": "pattern",
    "severity": "Medium"
  },
  {
    "rule_id": "R006",
    "rule_name": "High Volume Spike vs. Own Baseline",
    "threshold_value": 150000,
    "rule_type": "volume_spike",
    "severity": "Medium"
  },
  {
    "rule_id": "R008",
    "rule_name": "Reported Rule 10b5-1 Plan (severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R009",
    "rule_name": "Tax-Withholding Disposition (Code F, severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R010",
    "rule_name": "Option Exercise (Code M, severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R001",
    "rule_name": "Single Trade Limit Exceeded",
    "threshold_value": null,
    "rule_type": "single_limit",
    "severity": "High"
  },
  {
    "rule_id": "R002",
    "rule_name": "Rolling 90-Day Volume Exceeded",
    "threshold_value": null,
    "rule_type": "rolling_90d_limit",
    "severity": "High"
  },
  {
    "rule_id": "R007",
    "rule_name": "Late Section 16(a) Filing (> 2 trading days)",
    "threshold_value": 2,
    "rule_type": "filing_lateness",
    "severity": "High"
  },
  {
    "rule_id": "R004",
    "rule_name": "Large Sale After Recent Acquisition",
    "threshold_value": null,
    "rule_type": "timing",
    "severity": "Critical"
  },
  {
    "rule_id": "R005",
    "rule_name": "Suspicious Timing Near Earnings",
    "threshold_value": 5,
    "rule_type": "timing",
    "severity": "Critical"
  }
]

Total traded in the 90 days before

Within the limit
Total: $400,000Rolling limit: $50,000,000
Window ending
Jul 18, 2025
Transactions counted
1
Sale
$400,000
View source result call_OCtoDBZ61U4iOxvRhRwp0ZQc

rolling_90d_trading_volume({"rptowner_cik":"9000000001","as_of_date":"2025-07-18"})

{
  "total_volume": 400000,
  "sales_volume": 400000,
  "purchases_volume": 0,
  "volume_by_code": {
    "S": 400000
  },
  "transaction_count": 1,
  "rptowner_cik": "9000000001",
  "window_end": "2025-07-18",
  "window_days": 90,
  "accession_numbers": [
    "SCENARIO-0000000001-25-000001"
  ]
}

Their own trading history

No history to compare

No earlier trades by this insider were found in the 180 days before this one, so there is nothing to compare it against.

View source result call_w5KxQhVOrbeGsUTupcbOcFKm

insider_trading_baseline({"rptowner_cik":"9000000001","as_of_date":"2025-07-18"})

{
  "rptowner_cik": "9000000001",
  "as_of_date": "2025-07-18",
  "lookback_days": 180,
  "transaction_count": 0,
  "message": "No prior transactions found in this window"
}

Firm rules checked

  • R003Unusual Sale Pattern (Rapid Trading)Medium
  • R006High Volume Spike vs. Own BaselineMedium
  • R008Reported Rule 10b5-1 Plan (severity reducer)Low
  • R009Tax-Withholding Disposition (Code F, severity reducer)Low
  • R010Option Exercise (Code M, severity reducer)Low
  • R001Single Trade Limit ExceededHigh
  • R002Rolling 90-Day Volume ExceededHigh
  • R007Late Section 16(a) Filing (> 2 trading days)High
  • R004Large Sale After Recent AcquisitionCritical
  • R005Suspicious Timing Near EarningsCritical
View source result call_k1yeKOtYUi0aUsd98ot7ZNzr

get_compliance_rules({})

[
  {
    "rule_id": "R003",
    "rule_name": "Unusual Sale Pattern (Rapid Trading)",
    "threshold_value": 3,
    "rule_type": "pattern",
    "severity": "Medium"
  },
  {
    "rule_id": "R006",
    "rule_name": "High Volume Spike vs. Own Baseline",
    "threshold_value": 150000,
    "rule_type": "volume_spike",
    "severity": "Medium"
  },
  {
    "rule_id": "R008",
    "rule_name": "Reported Rule 10b5-1 Plan (severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R009",
    "rule_name": "Tax-Withholding Disposition (Code F, severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R010",
    "rule_name": "Option Exercise (Code M, severity reducer)",
    "threshold_value": null,
    "rule_type": "exculpatory",
    "severity": "Low"
  },
  {
    "rule_id": "R001",
    "rule_name": "Single Trade Limit Exceeded",
    "threshold_value": null,
    "rule_type": "single_limit",
    "severity": "High"
  },
  {
    "rule_id": "R002",
    "rule_name": "Rolling 90-Day Volume Exceeded",
    "threshold_value": null,
    "rule_type": "rolling_90d_limit",
    "severity": "High"
  },
  {
    "rule_id": "R007",
    "rule_name": "Late Section 16(a) Filing (> 2 trading days)",
    "threshold_value": 2,
    "rule_type": "filing_lateness",
    "severity": "High"
  },
  {
    "rule_id": "R004",
    "rule_name": "Large Sale After Recent Acquisition",
    "threshold_value": null,
    "rule_type": "timing",
    "severity": "Critical"
  },
  {
    "rule_id": "R005",
    "rule_name": "Suspicious Timing Near Earnings",
    "threshold_value": 5,
    "rule_type": "timing",
    "severity": "Critical"
  }
]

Finding

EscalateSeverity: CriticalConfidence: high10b5-1 status: not established

The insider, SCENARIO OFFICER ONE, executed a sale of 4,000 shares on July 18, 2025, totaling $400,000. This transaction occurred during a blackout period from July 10, 2025, to July 22, 2025, due to an upcoming earnings announcement on July 20, 2025. Trading during this blackout period raises significant compliance concerns, as it suggests a potential violation of insider trading rules, specifically related to suspicious timing near earnings. The transaction's timing warrants immediate escalation for further review.

Rules cited

  • R005 Suspicious Timing Near Earnings (Critical)

Exculpatory factors

  • below all thresholds (transaction 1)
Grounding: 2/4 claims supported, confidence: low, 2 unsupported. Unverified claims remain: human review required

Claims check

  • The insider, SCENARIO OFFICER ONE, executed a sale of 4,000 shares on July 18, 2025, totaling $400,000.

    The tool result confirms the sale of 4,000 shares on July 18, 2025, totaling $400,000.

    call_4ZziXItuSZsE1y4llz8sfL9J

  • This transaction occurred during a blackout period from July 10, 2025, to July 22, 2025, due to an upcoming earnings announcement on July 20, 2025.

    The tool result confirms the transaction occurred during a blackout period from July 10, 2025, to July 22, 2025, due to an earnings announcement on July 20, 2025.

    call_RyLivN0lAv2PpYsEXuFfDkiT

  • Trading during this blackout period raises significant compliance concerns, as it suggests a potential violation of insider trading rules, specifically related to suspicious timing near earnings.

    The claim is not supported as it cites no tool call, and no evidence is provided to confirm compliance concerns or insider trading rule violations.

    Cites no evidence

  • The transaction's timing warrants immediate escalation for further review.

    The claim is unsupported as it cites no tool call, and no evidence is provided to confirm the need for immediate escalation.

    Cites no evidence

Process audit

Checked in code, with no AI judgement. It records how the investigation worked; it never changes the finding.

  • Required evidence gathered

    Every required tool was called.

    6 of 6 tools
  • Transaction details first

    The first call was get_transaction_details.

    Yes
  • Citations all real

    Some claims cite no evidence at all.

    Problem
  • Exemptions supported

    The finding claims no exemption.

    None claimed

Run this case yourself

Starts a new live investigation on this filing. It uses the server's model credits, and the result will differ a little from the recorded run.

Re-run this case live

Compare with Same sale, pre-arranged plan.