{
  "schema": "regsutra.rulepack/v1",
  "generatedAt": "2026-08-27T23:33:26.530Z",
  "entityCategory": "stockbroker",
  "sourceDocs": [
    "MC-SB-2024"
  ],
  "rules": [
    {
      "ruleId": "R-001",
      "obligationId": "OBL-SB-001",
      "title": "Appoint and maintain a qualified Compliance Officer",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:compliance_officer_change",
      "condition": {
        "==": [
          {
            "var": "org.compliance_officer.appointed"
          },
          true
        ]
      },
      "action": "notify_exchanges",
      "evidenceSchema": [
        "exchange_ack"
      ],
      "severity": "high",
      "frequency": "ongoing",
      "deadlineRule": "Intimation to exchanges forthwith upon change",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 1, Para 1.4",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-002",
      "obligationId": "OBL-SB-002",
      "title": "Validate Unique Client Code (UCC) before order execution",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:order_placement",
      "condition": {
        "==": [
          {
            "var": "order.client.ucc_validated"
          },
          true
        ]
      },
      "action": "block_order_if_false",
      "evidenceSchema": [
        "ucc_upload_log"
      ],
      "severity": "critical",
      "frequency": "ongoing",
      "deadlineRule": "Before first order per client",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 2, Para 2.1",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-003",
      "obligationId": "OBL-SB-003",
      "title": "Periodic KYC updation per client risk category",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:risk_bucket_cycle",
      "condition": {
        "<=": [
          {
            "var": "client.kyc_age_days"
          },
          {
            "var": "client.risk_bucket.max_age_days"
          }
        ]
      },
      "action": "trigger_kyc_refresh",
      "evidenceSchema": [
        "kra_upload_confirmation"
      ],
      "severity": "high",
      "frequency": "ongoing",
      "deadlineRule": "Per KRA framework timelines by risk bucket",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 2, Para 2.7",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-004",
      "obligationId": "OBL-SB-004",
      "title": "Running account settlement of client funds (30/90-day cycle)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:quarterly@first_friday",
      "condition": {
        "<=": [
          {
            "var": "client.days_since_last_settlement"
          },
          90
        ]
      },
      "action": "execute_fund_settlement",
      "evidenceSchema": [
        "settlement_report",
        "retention_statement"
      ],
      "severity": "critical",
      "frequency": "quarterly",
      "deadlineRule": "First Friday (or Saturday, as notified) of the settlement cycle",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 2, Para 2.12",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-005",
      "obligationId": "OBL-SB-005",
      "title": "End-of-day upstreaming of client funds to Clearing Corporations",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:daily@EOD",
      "condition": {
        "<=": [
          {
            "var": "client_funds.retained_overnight"
          },
          {
            "var": "limits.permitted_exceptions"
          }
        ]
      },
      "action": "upstream_to_cc",
      "evidenceSchema": [
        "cc_confirmation",
        "eod_balance_report"
      ],
      "severity": "critical",
      "frequency": "daily",
      "deadlineRule": "End of day, every trading day",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 3, Para 3.8",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-006",
      "obligationId": "OBL-SB-006",
      "title": "Weekly client-level fund balance reporting (enhanced supervision)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:weekly@exchange_calendar",
      "condition": {
        "==": [
          {
            "var": "reports.weekly_client_balance.submitted"
          },
          true
        ]
      },
      "action": "file_report",
      "evidenceSchema": [
        "exchange_ack"
      ],
      "severity": "high",
      "frequency": "weekly",
      "deadlineRule": "Weekly, per exchange submission calendar",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 5, Para 5.2",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-007",
      "obligationId": "OBL-SB-007",
      "title": "Daily margin collection reporting to exchanges",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:daily@reporting_window",
      "condition": {
        "==": [
          {
            "var": "reports.daily_margin.submitted"
          },
          true
        ]
      },
      "action": "file_report",
      "evidenceSchema": [
        "exchange_ack"
      ],
      "severity": "critical",
      "frequency": "daily",
      "deadlineRule": "Per exchange daily reporting window",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 4, Para 4.3",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-008",
      "obligationId": "OBL-SB-008",
      "title": "Upfront margin short-collection handling",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:margin_short_collection",
      "condition": {
        "==": [
          {
            "var": "penalty.passed_to_client"
          },
          false
        ]
      },
      "action": "reconcile_penalty",
      "evidenceSchema": [
        "penalty_recon_statement"
      ],
      "severity": "medium",
      "frequency": "event-driven",
      "deadlineRule": "Per exchange penalty cycle",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 4, Para 4.3",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-009",
      "obligationId": "OBL-SB-009",
      "title": "Half-yearly net worth certificate submission",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:half-yearly@period_end+30d",
      "condition": {
        ">=": [
          {
            "var": "org.net_worth"
          },
          {
            "var": "limits.min_net_worth"
          }
        ]
      },
      "action": "file_certificate",
      "evidenceSchema": [
        "ca_certificate",
        "exchange_ack"
      ],
      "severity": "high",
      "frequency": "half-yearly",
      "deadlineRule": "Within exchange timeline after Mar 31 / Sep 30",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 6, Para 6.1",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-010",
      "obligationId": "OBL-SB-010",
      "title": "Half-yearly internal audit and report submission",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:half-yearly@period_end+60d",
      "condition": {
        "==": [
          {
            "var": "audit.internal.submitted"
          },
          true
        ]
      },
      "action": "submit_audit_report",
      "evidenceSchema": [
        "audit_report",
        "exchange_ack"
      ],
      "severity": "high",
      "frequency": "half-yearly",
      "deadlineRule": "Within prescribed period after each half-year end",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 7, Para 7.1",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-011",
      "obligationId": "OBL-SB-011",
      "title": "Annual system audit (IBT / algorithmic trading systems)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:annual@audit_calendar",
      "condition": {
        "==": [
          {
            "var": "audit.system.submitted"
          },
          true
        ]
      },
      "action": "submit_audit_report",
      "evidenceSchema": [
        "system_audit_report",
        "cap_document"
      ],
      "severity": "high",
      "frequency": "annual",
      "deadlineRule": "Per exchange system-audit calendar",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 7, Para 7.5",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-012",
      "obligationId": "OBL-SB-012",
      "title": "CSCRF: security monitoring (SOC) and log retention",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:continuous",
      "condition": {
        "==": [
          {
            "var": "cscrf.soc_active"
          },
          true
        ]
      },
      "action": "collect_evidence:soc_attestation",
      "evidenceSchema": [
        "soc_attestation",
        "log_retention_report"
      ],
      "severity": "critical",
      "frequency": "ongoing",
      "deadlineRule": "Continuous",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 8, Para 8.2",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-013",
      "obligationId": "OBL-SB-013",
      "title": "CSCRF: periodic VAPT and remediation closure",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:half-yearly@cscrf_cycle",
      "condition": {
        "==": [
          {
            "var": "cscrf.vapt.submitted"
          },
          true
        ]
      },
      "action": "submit_vapt_report",
      "evidenceSchema": [
        "vapt_report",
        "closure_tracker"
      ],
      "severity": "critical",
      "frequency": "half-yearly",
      "deadlineRule": "Per CSCRF cycle for category (H1 due Jun 30)",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 8, Para 8.5",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-014",
      "obligationId": "OBL-SB-014",
      "title": "Cyber incident reporting within 6 hours",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:cyber_incident_detected",
      "condition": {
        "<=": [
          {
            "var": "incident.report_delay_hours"
          },
          6
        ]
      },
      "action": "file_incident_report",
      "evidenceSchema": [
        "incident_report",
        "submission_timestamp"
      ],
      "severity": "critical",
      "frequency": "event-driven",
      "deadlineRule": "≤ 6 hours from detection",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 8, Para 8.9",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-015",
      "obligationId": "OBL-SB-015",
      "title": "SCORES: resolve investor complaints within 21 days",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:scores_complaint_received",
      "condition": {
        "<=": [
          {
            "var": "complaint.age_days"
          },
          21
        ]
      },
      "action": "resolve_and_file_atr",
      "evidenceSchema": [
        "atr_confirmation"
      ],
      "severity": "high",
      "frequency": "event-driven",
      "deadlineRule": "21 calendar days per complaint",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 9, Para 9.1",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-016",
      "obligationId": "OBL-SB-016",
      "title": "ODR portal enrolment and participation",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:odr_case_notice",
      "condition": {
        "==": [
          {
            "var": "odr.enrolled"
          },
          true
        ]
      },
      "action": "participate_in_odr",
      "evidenceSchema": [
        "case_participation_log"
      ],
      "severity": "medium",
      "frequency": "ongoing",
      "deadlineRule": "Per ODR case timelines",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 9, Para 9.4",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-017",
      "obligationId": "OBL-SB-017",
      "title": "Advertisement pre-approval by stock exchange",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:advertisement_planned",
      "condition": {
        "==": [
          {
            "var": "ad.exchange_approved"
          },
          true
        ]
      },
      "action": "block_publication_if_false",
      "evidenceSchema": [
        "approval_letter",
        "publication_log"
      ],
      "severity": "medium",
      "frequency": "event-driven",
      "deadlineRule": "Prior to publication",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 10, Para 10.2",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-018",
      "obligationId": "OBL-SB-018",
      "title": "Order-evidence retention (incl. call recordings)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:continuous",
      "condition": {
        "==": [
          {
            "var": "records.order_evidence.retention_ok"
          },
          true
        ]
      },
      "action": "collect_evidence:archive_attestation",
      "evidenceSchema": [
        "archive_attestation"
      ],
      "severity": "high",
      "frequency": "ongoing",
      "deadlineRule": "Continuous retention per prescribed period",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 10, Para 10.6",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-019",
      "obligationId": "OBL-SB-019",
      "title": "Technical glitch reporting (≤1 hour) and preliminary report (T+1)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:technical_glitch",
      "condition": {
        "<=": [
          {
            "var": "glitch.report_delay_minutes"
          },
          60
        ]
      },
      "action": "file_glitch_report",
      "evidenceSchema": [
        "glitch_report",
        "preliminary_report",
        "rca"
      ],
      "severity": "critical",
      "frequency": "event-driven",
      "deadlineRule": "≤ 1 hour; T+1; RCA per framework",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 11, Para 11.3",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-020",
      "obligationId": "OBL-SB-020",
      "title": "BCP-DR capability and periodic DR drills",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:half-yearly@drill_calendar",
      "condition": {
        "<=": [
          {
            "var": "dr.rto_minutes"
          },
          {
            "var": "limits.rto_target"
          }
        ]
      },
      "action": "conduct_dr_drill",
      "evidenceSchema": [
        "drill_report"
      ],
      "severity": "high",
      "frequency": "half-yearly",
      "deadlineRule": "Drill each half-year per framework",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 11, Para 11.7",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-021",
      "obligationId": "OBL-SB-021",
      "title": "Algo trading: per-strategy exchange approval and certification",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:algo_deployment",
      "condition": {
        "==": [
          {
            "var": "algo.exchange_approved"
          },
          true
        ]
      },
      "action": "block_deployment_if_false",
      "evidenceSchema": [
        "approval_record",
        "audit_trail_attestation"
      ],
      "severity": "high",
      "frequency": "event-driven",
      "deadlineRule": "Before deployment of each strategy; certification per cycle",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 12, Para 12.2",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-022",
      "obligationId": "OBL-SB-022",
      "title": "Risk Based Supervision (RBS) periodic data submission",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:quarterly@quarter_end+15d",
      "condition": {
        "==": [
          {
            "var": "reports.rbs.submitted"
          },
          true
        ]
      },
      "action": "file_report",
      "evidenceSchema": [
        "exchange_ack"
      ],
      "severity": "medium",
      "frequency": "quarterly",
      "deadlineRule": "Within notified window after quarter end",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 5, Para 5.6",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-023",
      "obligationId": "OBL-SB-023",
      "title": "Annual compliance certificate to exchanges",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:annual@fy_end+30d",
      "condition": {
        "==": [
          {
            "var": "reports.annual_compliance_cert.submitted"
          },
          true
        ]
      },
      "action": "file_certificate",
      "evidenceSchema": [
        "signed_certificate",
        "exchange_ack"
      ],
      "severity": "high",
      "frequency": "annual",
      "deadlineRule": "Within exchange timeline after FY end",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 13, Para 13.4",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-024",
      "obligationId": "OBL-SB-024",
      "title": "Books and records retention (5/8 years)",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:continuous",
      "condition": {
        ">=": [
          {
            "var": "records.retention_years"
          },
          5
        ]
      },
      "action": "collect_evidence:retention_attestation",
      "evidenceSchema": [
        "retention_attestation"
      ],
      "severity": "medium",
      "frequency": "ongoing",
      "deadlineRule": "Continuous",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 13, Para 13.1",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-025",
      "obligationId": "OBL-SB-025",
      "title": "Inactive account flagging and reactivation diligence",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "event:account_inactivity_12m",
      "condition": {
        "==": [
          {
            "var": "account.flagged_inactive"
          },
          true
        ]
      },
      "action": "flag_and_gate_reactivation",
      "evidenceSchema": [
        "flag_batch_log",
        "diligence_record"
      ],
      "severity": "medium",
      "frequency": "event-driven",
      "deadlineRule": "On hitting 12-month inactivity; before reactivation",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 2, Para 2.19",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-026",
      "obligationId": "OBL-SB-026",
      "title": "Client account segregation and account nomenclature",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:continuous",
      "condition": {
        "==": [
          {
            "var": "accounts.all_tagged"
          },
          true
        ]
      },
      "action": "collect_evidence:tagging_report",
      "evidenceSchema": [
        "tagging_report"
      ],
      "severity": "high",
      "frequency": "ongoing",
      "deadlineRule": "Continuous",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 3, Para 3.2",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-027",
      "obligationId": "OBL-SB-027",
      "title": "Standard derivatives risk disclosure display",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:continuous",
      "condition": {
        "==": [
          {
            "var": "platform.risk_disclosure_live"
          },
          true
        ]
      },
      "action": "collect_evidence:screenshot_audit",
      "evidenceSchema": [
        "screenshot_evidence"
      ],
      "severity": "medium",
      "frequency": "ongoing",
      "deadlineRule": "Continuous",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 10, Para 10.9",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.97
      }
    },
    {
      "ruleId": "R-028",
      "obligationId": "OBL-SB-028",
      "title": "Employee securities-dealing conduct policy and training",
      "appliesTo": [
        "stockbroker"
      ],
      "trigger": "schedule:annual@training_cycle",
      "condition": {
        ">=": [
          {
            "var": "training.completion_pct"
          },
          90
        ]
      },
      "action": "run_training_cycle",
      "evidenceSchema": [
        "attendance_records"
      ],
      "severity": "low",
      "frequency": "annual",
      "deadlineRule": "Annual training cycle",
      "provenance": {
        "docId": "MC-SB-2024",
        "clauseRef": "Ch. 1, Para 1.4",
        "extractedBy": "agent:extractor@claude-sonnet-5 (human-verified)",
        "confidence": 0.88
      }
    }
  ]
}