Overview
Pre-trade risk check result produced by RiskManagementEngine and published to the EventBus. Consumed by OrderManagementSystem. Defined in src/domain/__init__.py.
Contract
Consumers
- OrderManagementSystem
- AuditLog
Types
| Name | Base | Constraints / Values | Description |
|---|---|---|---|
| RiskDecision | dataclass | — | Pre-trade risk check result published by RiskManagementEngine. |
Documents
RiskDecision Data Contract
Pre-trade risk check result produced by RiskManagementEngine and published to the EventBus.
Consumed by OrderManagementSystem.
Source: src/domain/__init__.py — @dataclass class RiskDecision
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
signal_ref |
str |
✓ | — | signal_id of the Signal being evaluated |
approved |
bool |
✓ | — | True if signal passed all risk checks; False if rejected |
reason |
str |
✓ | — | Human-readable explanation of the decision |
checks_passed |
list[str] |
[] |
Names of risk rules that passed | |
checks_failed |
list[str] |
[] |
Names of risk rules that failed | |
timestamp |
datetime |
now() |
UTC timestamp of decision | |
decision_id |
str |
uuid4() |
Unique decision identifier |
Consumers
| Component | Usage |
|---|---|
OrderManagementSystem |
Creates an Order only if approved == True; logs rejection otherwise |
Notes
decision_idis referenced byOrder.risk_refto trace which risk decision approved the orderchecks_passedandchecks_failedare lists of rule names (e.g."max_position_size","daily_loss_limit")- A rejected decision (
approved == False) terminates the signal lifecycle — no order is created