Ads Performance Analytics
rampstackco/claude-skills
How to read paid media dashboards without fooling yourself. An agent skill from rampstackco/claude-skills.
Evaluate investment performance on a risk-adjusted basis using industry-standard ratios and capture analysis.
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JoelLewis/finance_skills performance-metrics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .claude/skills/performance-metrics && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .claude/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metricsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JoelLewis/finance_skills performance-metrics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .agents/skills/performance-metrics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .agents/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JoelLewis/finance_skills performance-metrics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .cursor/skills/performance-metrics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .cursor/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JoelLewis/finance_skills.git --path plugins/wealth-management/skills/performance-metrics--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JoelLewis/finance_skills performance-metrics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .gemini/skills/performance-metrics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .gemini/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JoelLewis/finance_skills performance-metricsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .github/skills/performance-metrics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .github/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JoelLewis/finance_skills --skill performance-metrics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JoelLewis/finance_skills performance-metrics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JoelLewis/finance_skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/wealth-management/skills/performance-metrics .opencode/skills/performance-metrics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "performance-metrics" agent skill from https://github.com/JoelLewis/finance_skills/tree/main/plugins/wealth-management/skills/performance-metrics into .opencode/skills/performance-metrics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "performance-metrics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
performance-metricsEvaluate investment performance on a risk-adjusted basis using industry-standard ratios and capture analysis.
Performance Metrics is an agent skill from JoelLewis/finance_skills. Evaluate investment performance on a risk-adjusted basis using industry-standard ratios and capture analysis. Use when the user asks about Sharpe ratio, Sortino ratio, Information Ratio, Treynor ratio, Calmar ratio, Omega ratio, or upside/downside capture. Also trigger when users mention 'risk-adjusted returns', 'return per unit of risk', 'M-squared', 'is this fund worth the volatility', 'how to compare two managers', 'capture ratio', or ask which investment performed better after accounting for risk.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/performance_metrics.py`).
It sits in Business, Finance & HR, covering OKRs and executive reporting and Accounting and bookkeeping. The repository describes itself as: Claude Code skill plugins for financial services — 81 skills across 7 domain plugins covering investment management, compliance, advisory practice, trading, and operations. The licence is MIT.
Read from SKILL.md and the folder at commit 5c498ea. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
uvpython3pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv and pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Performance Metrics loads about 2.4k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 1,097 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from JoelLewis/finance_skills at commit 5c498ea, republished under its MIT licence (© JoelLewis). 1,097 words, ~2,354 tokens.
.claude/skills/performance-metrics/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The most widely used risk-adjusted performance measure. It divides excess return (over the risk-free rate) by total volatility.
SR = (R_p - R_f) / sigma_pA higher Sharpe ratio indicates more return per unit of total risk. Typical benchmarks: SR < 0.5 is poor, 0.5-1.0 is acceptable, > 1.0 is strong, > 2.0 is exceptional.
Annualization: If computed from monthly data, SR_annual = SR_monthly * sqrt(12).
Replaces total volatility with downside deviation, penalizing only harmful volatility (returns below a Minimum Acceptable Return).
Sortino = (R_p - R_f) / sigma_downsidewhere sigma_downside = sqrt((1/n) * sum(min(R_i - MAR, 0)^2)).
Common MAR choices: 0%, risk-free rate, or a target return. Always state which MAR is used, and use the same reference point in the numerator as in the downside deviation: if the MAR is not the risk-free rate, the numerator should be (R_p - MAR), not (R_p - R_f). Mixing reference points makes the ratio internally inconsistent.
Measures active return (alpha) per unit of active risk (tracking error) relative to a benchmark.
IR = (R_p - R_b) / TEwhere TE = std(R_p - R_b) * sqrt(N).
An IR above 0.5 is generally considered good; above 1.0 is exceptional and difficult to sustain.
Measures excess return per unit of systematic risk (beta) rather than total risk.
Treynor = (R_p - R_f) / beta_pUseful for evaluating diversified portfolios where idiosyncratic risk has been diversified away. For undiversified holdings, the Sharpe ratio is more appropriate.
Relates annualized return to the worst peak-to-trough drawdown.
Calmar = CAGR / |MaxDrawdown|A Calmar ratio above 1.0 means the annualized return exceeds the maximum drawdown. This ratio is popular among CTAs and hedge fund investors. Typically computed over a 3-year window.
A gain-loss ratio that considers the entire return distribution above and below a threshold tau.
Omega(tau) = integral from tau to +inf of [1 - F(r)] dr
/ integral from -inf to tau of F(r) drwhere F(r) is the cumulative distribution function of returns.
In practice, this is computed as:
Omega(tau) = sum(max(R_i - tau, 0)) / sum(max(tau - R_i, 0))Omega > 1 means expected gains above tau exceed expected losses below tau. Unlike Sharpe, Omega captures the full shape of the distribution (skewness, kurtosis).
Measure how the portfolio participates in benchmark up and down markets.
Up Capture = R_p(in up months) / R_b(in up months) * 100
Down Capture = R_p(in down months) / R_b(in down months) * 100
Capture Ratio = Up Capture / Down CaptureIdeal profile: Up Capture > 100% and Down Capture < 100%, yielding a Capture Ratio > 1. "Up months" and "down months" are defined by the benchmark return being positive or negative, respectively.
Expresses risk-adjusted return in the same units as return, by leveraging or deleveraging the portfolio to match benchmark volatility.
M^2 = R_f + SR_p * sigma_b
= R_f + ((R_p - R_f) / sigma_p) * sigma_bInterpretation: "If this portfolio were scaled to have the same volatility as the benchmark, it would have returned M-squared." This makes it directly comparable to benchmark returns.
| Formula | Expression | Use Case |
|---|---|---|
| Sharpe Ratio | (R_p - R_f) / sigma_p | Return per unit of total risk |
| Sortino Ratio | (R_p - R_f) / sigma_downside | Return per unit of downside risk |
| Information Ratio | (R_p - R_b) / TE | Active return per unit of active risk |
| Treynor Ratio | (R_p - R_f) / beta_p | Return per unit of systematic risk |
| Calmar Ratio | CAGR / | MaxDD |
| Omega Ratio | sum(max(R_i - tau, 0)) / sum(max(tau - R_i, 0)) | Full-distribution gain-loss ratio |
| Up Capture | R_p(up) / R_b(up) * 100 | Participation in rising markets |
| Down Capture | R_p(down) / R_b(down) * 100 | Participation in falling markets |
| M-Squared | R_f + SR_p * sigma_b | Risk-adjusted return in return units |
Given: A fund returned 12% annualized, the risk-free rate is 4%, and the fund's annualized volatility is 15%.
Calculate: Sharpe Ratio.
Solution:
SR = (0.12 - 0.04) / 0.15
= 0.08 / 0.15
= 0.533The fund earned 0.533 units of excess return per unit of risk. This is in the "acceptable" range but below 1.0.
Given:
Calculate: Which fund is better for a downside-averse investor?
Solution:
Fund A has a higher Sharpe ratio (0.8 vs 0.7), indicating better total-risk-adjusted performance. However, Fund B has a notably higher Sortino ratio (1.5 vs 1.2), meaning it delivers significantly more return per unit of downside risk.
The divergence implies Fund B's volatility is more skewed to the upside -- its total volatility includes more "good" volatility (gains), while its downside volatility is relatively contained.
For a downside-averse investor, Fund B is preferable because the Sortino ratio better captures the risk they care about (losses), and Fund B's superior Sortino indicates better downside risk management.
Given: A portfolio returned 10% annualized, its benchmark returned 8%, and the tracking error is 4%.
Calculate: Information Ratio.
Solution:
IR = (0.10 - 0.08) / 0.04
= 0.02 / 0.04
= 0.50The manager generated 0.50 units of active return per unit of active risk. This is generally considered a good IR, suggesting consistent alpha generation relative to benchmark deviations.
Run with uv run scripts/performance_metrics.py (the PEP 723 header resolves numpy automatically) or with python3 scripts/performance_metrics.py after pip install numpy scipy. A bare run prints a full scorecard (Sharpe, Sortino, Information Ratio, Calmar, Treynor, Omega, capture ratios, batting average, win/loss) on seeded synthetic portfolio and benchmark data. Use --verify to assert outputs match this skill's worked examples and the demo's expected values (exit code 0 on PASS) and --help for an overview of the class. The file is primarily meant to be imported as a module (e.g., from performance_metrics import PerformanceScorecard).
© JoelLewis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in plugins/wealth-management/skills/performance-metrics of JoelLewis/finance_skills.
Open the folder on GitHubat commit 5c498ea
Performance Metrics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Performance Metrics this skillJoelLewis/finance_skills | 205 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Ads Performance Analyticsrampstackco/claude-skills | 941 | — | ~6.2k | Automated safety check: Pass | MIT | |
| Subscription Revenue TrackerLeoYeAI/openclaw-master-skills | 2.2k | — | ~5k | Automated safety check: Pass | MIT | |
| Investor Reportrevfactory/harness-100 | 1.3k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Sync Upstreamnyaruka/phonenumbers | 1.6k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Radiology Tablehuang-sir1/radiology-skills | 1.9k | — | ~1.3k | Automated safety check: Pass | Custom licence |
rampstackco/claude-skills
How to read paid media dashboards without fooling yourself. An agent skill from rampstackco/claude-skills.
LeoYeAI/openclaw-master-skills
SaaS and subscription business revenue intelligence. An agent skill from LeoYeAI/openclaw-master-skills.
revfactory/harness-100
A full pipeline that systematizes investor reports into financial performance analysis, KPI dashboard, market trends, strategy updates, and risk disclosures.
nyaruka/phonenumbers
Sync this Go port with a new upstream google/libphonenumber release — regenerate the embedded metadata and reconcile the ported Java logic.
huang-sir1/radiology-skills
Create/audit editable publication tables with source reconciliation; not figures or statistical inference.
TradersPost/pinescript-agents
Implements comprehensive backtesting and performance metrics.
JoelLewis/finance_skills
Determine how to distribute capital across asset classes using strategic and tactical allocation frameworks.
JoelLewis/finance_skills
Determine how much capital to allocate to individual positions within a portfolio.
JoelLewis/finance_skills
Analyze commodity markets including futures curve dynamics, roll yield, and supply/demand fundamentals.
JoelLewis/finance_skills
Analyze currency markets, exchange rate mechanics, and FX risk management for international portfolios.
JoelLewis/finance_skills
Provide frameworks for managing and paying off personal debt effectively.
JoelLewis/finance_skills
Build diversified portfolios using correlation analysis, efficient frontier construction, and factor-based diversification.
Categories
Evaluate investment performance on a risk-adjusted basis using industry-standard ratios and capture analysis. Performance Metrics is an agent skill from JoelLewis/finance_skills. Evaluate investment performance on a risk-adjusted basis using industry-standard ratios and capture analysis.
Performance Metrics fits situations like: the user asks about Sharpe ratio; information Ratio; upside/downside capture; users mention risk-adjusted returns.
Run `npx skills add JoelLewis/finance_skills --skill performance-metrics -a claude-code`. Or copy the skill folder (plugins/wealth-management/skills/performance-metrics in JoelLewis/finance_skills) into .claude/skills/performance-metrics in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JoelLewis/finance_skills --skill performance-metrics -a codex`. Or copy the skill folder (plugins/wealth-management/skills/performance-metrics in JoelLewis/finance_skills) into .agents/skills/performance-metrics in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JoelLewis/finance_skills --skill performance-metrics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/performance-metrics, .gemini/skills/performance-metrics, .github/skills/performance-metrics and .opencode/skills/performance-metrics in your project.
Going by SKILL.md and its folder, Performance Metrics needs Python for the scripts in its folder and the command-line tools its instructions call (uv, python3 and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv and pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Performance Metrics is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Performance Metrics: Ads Performance Analytics (rampstackco/claude-skills, 941 stars), Subscription Revenue Tracker (LeoYeAI/openclaw-master-skills, 2.2k stars), Investor Report (revfactory/harness-100, 1.3k stars) and Sync Upstream (nyaruka/phonenumbers, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JoelLewis (a GitHub user) maintains it in JoelLewis/finance_skills, which has 205 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on July 18, 2026.
Source: JoelLewis/finance_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.