Overview
The Anomaly Detection Tools provide statistical analysis capabilities to identify unusual patterns in portfolio metrics, transactions, and validation breaches. Using industry-standard methods (z-score and Interquartile Range), these tools detect outliers that may indicate risk, fraud, or data quality issues. Two detection methods work in tandem:- Z-Score: Measures standard deviations from the mean, effective for normally-distributed data
- IQR (Interquartile Range): Robust quartile-based method, resistant to extreme outliers
Quick Reference
| Tool | Purpose | Key Parameters |
|---|---|---|
detect_anomalies | Comprehensive anomaly detection across risk metrics, transactions, and breaches | portfolio_id, detection_type, sensitivity |
get_anomaly_alerts | Retrieve recent anomaly alerts with filtering capabilities | portfolio_id, severity, limit |
Statistical Methods
Z-Score Detection
The z-score measures how many standard deviations a value deviates from the mean:sensitivity parameter):
- Low: Triggers at 3.0 sigma (99.7% confidence)
- Medium: Triggers at 2.5 sigma (98.8% confidence)
- High: Triggers at 2.0 sigma (95.4% confidence)
IQR (Interquartile Range) Detection
The IQR method identifies outliers based on quartile boundaries:- Non-parametric (doesn’t assume normal distribution)
- Robust against extreme outliers
- Better for skewed data
Tools
detect_anomalies
Detect statistical anomalies across portfolio risk metrics, transaction patterns, and validation breaches. Signature:portfolio_id(string, required): The portfolio ID to analyze. Example:"port_123abc"detection_type(string, default:"all"): Type of anomalies to detect"risk_metrics": VaR, volatility, beta, Sharpe ratio, max drawdown"transactions": Daily volume patterns and individual transaction sizes"breaches": Validation breach frequency and patterns"all": Run all detection types
lookback_days(integer, default:90): Historical window for baseline calculation. Range: 10-365 dayssensitivity(string, default:"medium"): Detection threshold"low": 3.0 sigma (fewest alerts)"medium": 2.5 sigma (balanced)"high": 2.0 sigma (most sensitive)
include_recommendations(boolean, default:true): Generate action recommendations for anomalies
| Type | Description | Metrics | Minimum Data |
|---|---|---|---|
risk_metric | Statistical deviation in portfolio risk measures | VaR (95/99), volatility, beta, Sharpe, drawdown | 10 historical records |
transaction_volume | Unusual daily trading volume | Sum of daily transaction amounts | 5 daily periods |
large_transaction | Individual transaction exceeds 50% of average daily volume | Transaction size | 5 daily periods |
breach_frequency | Increasing rate of validation breaches | Breaches per week | 3+ total breaches, 40%+ in last 7 days |
get_anomaly_alerts
Retrieve recent anomaly alerts with optional filtering by portfolio and severity. Signature:portfolio_id(string, optional): Filter alerts to specific portfolio. If omitted, scans first 10 active portfoliosseverity(string, optional): Filter by severity level"critical": Highest priority, requires immediate attention"high": Significant deviation, review recommended"medium": Notable variance, standard review"low": Minor anomalies, informational
limit(integer, default:50): Maximum alerts to return. Range: 1-1000
portfolio_id not specified):
Severity Ratings
Severity is determined by the z-score deviation:| Severity | Z-Score Range | Confidence | Meaning |
|---|---|---|---|
| Critical | >= 3.0 | 99.7% | Immediate investigation required |
| High | 2.5 - 2.99 | 98.8% | Significant deviation, review recommended |
| Medium | 2.0 - 2.49 | 95.4% | Notable variance, standard monitoring |
| Low | < 2.0 | < 95% | Minor anomalies, informational only |
Data Requirements
| Detection Type | Minimum Records | Minimum Duration | Notes |
|---|---|---|---|
| Risk Metrics | 10 | 10 days | Requires historical portfolio_risk_metrics |
| Transactions | 5 | 5 days | Daily aggregation of transaction amounts |
| Breaches | 3 | Any | Evaluates frequency over lookback period |
Recommendations Engine
Recommended actions are auto-generated based on anomaly type and metric:| Anomaly Type | Condition | Recommendation |
|---|---|---|
| VaR Anomaly | var_95 or var_99 spike | Review portfolio risk exposure; consider rebalancing or hedging |
| Volatility Spike | volatility deviation | Investigate market events or position changes |
| Max Drawdown | drawdown increases | Assess downside risk; maximum drawdown exceeded norms |
| Transaction Volume | Daily volume spike | Review trading activity; verify with fund manager |
| Large Transaction | Single txn > 50% daily avg | Verify transaction validity; check with operations |
| Breach Frequency | 40%+ recent breaches | Address recurring breaches; root cause analysis required |
Best Practices
Sensitivity Configuration:- Use
"low"for stable portfolios or when false positives impact operations - Use
"medium"for standard monitoring (recommended default) - Use
"high"for active management or fraud detection
- Use 90 days for standard baseline (captures quarterly patterns)
- Use 30 days for recent activity focusing
- Use 365 days for year-over-year comparisons
- Run periodic
"all"scans for comprehensive reviews - Use specific types (e.g.,
"transactions") for targeted investigations - Combine with
include_recommendations=truefor actionable insights
- Check critical alerts daily or enable real-time subscription
- Review high-severity alerts during trading hours
- Archive or investigate resolved anomalies to improve baselines
Error Handling
Both tools return"success": false on errors:
- Portfolio not found or no historical data
- Insufficient records for statistical analysis (< minimum thresholds)
- Database connectivity issues
- Invalid sensitivity or detection_type values
Performance Considerations
Computation Time:- Single portfolio detection: 1-5 seconds typical
- Multi-portfolio scan (10 portfolios): 10-30 seconds
- Lookback window affects calculation complexity linearly
- Risk metrics: 6 metrics × lookback records = max 540 calculations
- Transactions: Variable based on trading frequency
- Breaches: Depends on validation rule triggers
- Use specific
detection_typeinstead of"all"for faster results - Reduce
lookback_daysfor real-time monitoring - Cache results from
get_anomaly_alertsfor dashboards - Run comprehensive scans during off-hours