CtrlK
BlogDocsLog inGet started
Tessl Logo

performance-attribution

Performance attribution analysis — Brinson sector/stock-selection attribution, factor alpha/beta decomposition, market-timing evaluation, and benchmark comparison framework.

52

Quality

65%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/performance-attribution/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The Brinson attribution core is excellent — executable, output-verified code with sharp guidance on implementation reuse and residual interpretation — but the surrounding factor/timing/benchmark sections drift into textbook reference material that both bloats the file and dilutes actionability. Splitting reference tables into a separate file and adding executable regression examples would lift the weakest dimensions.

Suggestions

Move the factor proxy tables, China A-share benchmark codes, and risk-metric threshold tables into a one-level-deep reference file (e.g., references/benchmarks.md) with clearly signaled links from SKILL.md.

Trim or cut the restated textbook equations (Treynor-Mazuy, Henriksson-Merton, Fama-French formula, Sharpe/Sortino definitions) that Claude already knows; keep only the project-specific proxy mappings and decision thresholds.

Replace the undefined `monthly_inputs` placeholder with a concrete runnable input, and add a short executable regression snippet (e.g., statsmodels OLS) for the factor and timing models.

Add validation checkpoints to the Analysis Framework steps — e.g., verify the decomposition ties out to the reported fund return and quantify any reconciliation residual before writing conclusions.

DimensionReasoningScore

Conciseness

The Brinson/Carino sections are dense with genuinely non-obvious project knowledge (implementation pointers, residual vs. reconciliation distinction, fixture references), but a substantial middle section restates textbook finance Claude already knows — Treynor-Mazuly/Henriksson-Merton equations, the Fama-French formula, and Sharpe/Sortino/Calmar threshold tables. This matches 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than 2, because the core attribution content earns its tokens.

3 / 5

Actionability

The brinson_fachler and carino_link examples are executable with expected outputs annotated, and the output format gives a concrete report template. It is not 5 because `monthly_inputs` is an undefined placeholder rather than runnable input, and the factor/timing sections give formulas and thresholds but no executable regression code. Not 3: the guidance is genuinely executable, not pseudocode.

4 / 5

Workflow Clarity

The Analysis Framework lists a clear Step 1-4 sequence (aggregate, attribution decomposition, style, conclusions), but the steps are abstract directives ('Cumulative return vs benchmark') with no validation checkpoints — the only verification gate is the Brinson residual/reconciliation check. This matches 'steps listed but validation gaps; checkpoints missing or implicit' rather than 4.

3 / 5

Progressive Disclosure

A single-file skill (~320 lines) with no bundle files present; sections are well-organized with clear headers, but substantial reference-table material — factor proxy tables, China A-share benchmark codes, risk-metric thresholds — is inlined in SKILL.md where it belongs in a one-level-deep reference file. Matches 'some structure but could be better organized; content that should be separate is inline' rather than 4.

3 / 5

Total

13

/

20

Passed

Description

58%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A specific, well-scoped description of what the skill does, undermined by the total absence of when-to-use trigger guidance. Keyword coverage is adequate at the domain-jargon level but lacks the natural synonyms users would actually say.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user asks why a portfolio or strategy outperformed/underperformed its benchmark, wants return decomposition, or asks about attribution, alpha/beta, or excess-return sources.'

Include natural user phrasings as trigger terms — 'excess return', 'performance vs benchmark', 'why did the strategy win/lose' — alongside the model names.

Mention the linked multi-period attribution and the attribution report output so the capability list is comprehensive.

DimensionReasoningScore

Specificity

The description names four concrete capabilities — 'Brinson sector/stock-selection attribution', 'factor alpha/beta decomposition', 'market-timing evaluation', and 'benchmark comparison framework' — matching the anchor 'lists several specific actions; minor gaps in coverage'. It is not 5 because coverage is not comprehensive (e.g., no mention of reporting/linked multi-period attribution), and not 3 because it goes well beyond 1-2 actions.

4 / 5

Completeness

The 'what' is clear and specific (decompose returns into sector/selection/factor/timing sources), but there is no 'Use when...' clause or equivalent explicit trigger guidance anywhere in the description. Per the judging guidelines, a missing 'when' clause caps completeness at 3; it is not 2 because the 'what' is concrete, not vague.

3 / 5

Trigger Term Quality

Terms like 'attribution', 'alpha/beta', 'market-timing', and 'benchmark comparison' are keywords a quant user might say, but common natural variations are missing — 'excess return', 'portfolio performance', 'why did my strategy outperform', 'risk-adjusted'. This matches 'some relevant keywords but missing common variations or synonyms' rather than 4, where only a few natural terms would be missing.

3 / 5

Distinctiveness Conflict Risk

Performance attribution with named models (Brinson, factor decomposition, market-timing) is a fairly distinct niche with distinct triggers, matching 'mostly distinct; minor overlap risk'. It is not 5 because 'benchmark comparison' and general performance analysis could overlap with a generic backtest-metrics or performance-reporting skill.

4 / 5

Total

14

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
HKUDS/Vibe-Trading
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.