Agent skill

risk-metrics-calculation

Calculate portfolio risk metrics including VaR, CVaR, Sharpe, Sortino, and drawdown analysis. Use when measuring portfolio risk, implementing risk limits, or building risk monitoring systems.

majiayu000534★ · 1 repos on radarProfile →
claude-codeMIT
Install
npx skills add majiayu000/claude-skill-registry --skill risk-metrics-calculation-ccf-claude-code-ccf-mark --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 2
SKILL.md size: 19 KB
Bundled scripts: none
Path: skills/analysis/risk-metrics-calculation-ccf-claude-code-ccf-mark/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 534
Language: HTML

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Calculates a suite of portfolio risk metrics such as VaR, CVaR, drawdowns, and risk-adjusted performance measures. Provides class-based implementations for core metrics, portfolio-level risk, rolling risk analytics, and stress testing utilities.

How it works

  • Pattern 1: Core Risk Metrics defines a RiskMetrics class that takes a series of returns and computes:
    • Volatility, downside deviation, beta against market, historical/parametric/Cornish-Fisher VaR variants, CVaR, drawdown series, max/average drawdown, drawdown duration stats, Sharpe/Sortino/Calmar/Omega ratios, and distribution moments (skewness/kurtosis).
    • A summary() method aggregates many metrics into a single dictionary.
  • Pattern 2: Portfolio Risk provides a PortfolioRisk class that operates on a DataFrame of asset returns and optional weights to compute:
    • Portfolio return and volatility, marginal and component risk contributions, risk-parity weighting, correlation matrix, diversification ratio, tracking error, and conditional correlation under stress.
  • Pattern 3: Rolling Risk Metrics offers RollingRiskMetrics for rolling window calculations of volatility, Sharpe, VaR, max drawdown, beta, and volatility regime classification.
  • Pattern 4: Stress Testing introduces StressTester with historical crisis scenarios and a method historical_stress_test to evaluate a portfolio against a specified crisis window using crisis returns and optional weights.

When to use it

Use when measuring portfolio risk, implementing risk limits, building risk dashboards, calculating risk-adjusted returns, setting position sizes, or regulatory reporting.

What it can touch

Tools and code sections include: import statements, class definitions RiskMetrics, PortfolioRisk, RollingRiskMetrics, StressTester, and methods such as var_historical, var_parametric, cvar, drawdowns, sharpe_ratio, sortino_ratio, calmar_ratio, omega_ratio, portfolio_return, portfolio_volatility, diversification_ratio, tracking_error, rolling_volatility, rolling_var, historical_stress_test. The implementation relies on numpy, pandas, scipy.stats, and scipy.optimize, and uses standard file naming like Skill classes and method names as shown in the patterns.

Caveats

License is MIT. The skill defines numerical calculations that depend on input data quality (returns series, benchmark series, and crisis data). No stated guarantees on accuracy beyond standard statistical formulas; behavior may vary with extreme inputs (e.g., infinite or NaN values) unless inputs are cleaned. No explicit handling of non-trading days beyond typical annual factor assumptions (252).

From the SKILL.md

# Risk Metrics Calculation Comprehensive risk measurement toolkit for portfolio management, including Value at Risk, Expected Shortfall, and drawdown analysis. ## When to Use This Skill - Measuring portfolio risk - Implementing risk limits - Building risk dashboards - Calculating risk-adjusted returns - Setting position sizes - Regulatory reporting ## Core Concepts ### 1. Risk Metric Categories | Category | Metrics | Use Case | | ----------------- | --------------- | -------------------- | | **Volatility** | Std Dev, Beta | General risk | | **Tail Risk** | VaR, CVaR | Extreme losses | | **Drawdown** | Max DD, Calmar | Capital preservation | | **Risk-Adjusted** | Sharpe, Sortino | Performance | ### 2. Time Horizons ``` Intraday: Minute/hourly VaR for day traders Daily: Standard risk reporting Weekly: Rebalancing decisions Monthly: Performance attribution Annual: Strategic allocation ``` ## Implementation ### Pattern 1: Core Risk Metrics ```python import numpy as np import pandas as pd from scipy import stats from typing import Dict, Optional, Tuple class RiskMetrics: """Core risk metric calculations.""" def __init__(self, returns: pd.Series, rf_rate: float = 0.02): """ Args: returns

What's inside
Steps it walks through
  1. When to Use This Skill
  2. Core Concepts
  3. 1. Risk Metric Categories
  4. 2. Time Horizons
  5. Implementation
  6. Pattern 1: Core Risk Metrics
  7. Pattern 2: Portfolio Risk
  8. Pattern 3: Rolling Risk Metrics
  9. Pattern 4: Stress Testing
  10. Quick Reference
  11. Best Practices
  12. Do's
  13. Don'ts
  14. Resources
Ships with 1 file
  • metadata.json
More from claude-skill-registry
All skills →
About this skill
What does the risk-metrics-calculation skill do?

Calculate portfolio risk metrics including VaR, CVaR, Sharpe, Sortino, and drawdown analysis. Use when measuring portfolio risk, implementing risk limits, or building risk monitoring systems.

How do I install it?

Run `npx skills add majiayu000/claude-skill-registry --skill risk-metrics-calculation-ccf-claude-code-ccf-mark --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going