skillfed

performance-attribution

Decompose active returns into the sources that drove outperformance or underperformance—allocation decisions, security selection, and their combined effects. Supports equity attribution via Brinson-Fachler, factor-based decomposition, fixed-income yield and curve analysis, and currency impact for international portfolios.

Performance Attribution decomposes portfolio returns into allocation, selection, and interaction effects to show where value was added or lost.

AI-generated summary based on this skill's SKILL.md

159 32 MIT updated by JoelLewis

Install

JoelLewis/finance_skills/performance-attribution · repository language: Python

CLI (skillfed)coming soon
git clone https://github.com/JoelLewis/finance_skills
cp -r finance_skills/plugins/wealth-management/skills/performance-attribution ~/.claude/skills/performance-attribution

Frequently asked questions

AI-generated answers based on this skill's SKILL.md and metadata

How do I break down my portfolio returns with performance-attribution?

performance-attribution decomposes active returns into allocation, selection, and interaction effects. It shows whether outperformance came from sector/asset-class bets (allocation), picking better securities within those positions (selection), or the combined impact of both. The toolkit supports Brinson-Fachler equity analysis, factor-based decomposition, fixed-income yield and curve drivers, and currency effects for international portfolios.

What is the allocation vs selection effect in performance-attribution?

performance-attribution separates two core sources of active return. Allocation effect measures whether you over- or under-weighted sectors or asset classes relative to the benchmark. Selection effect captures whether your security picks within those positions outperformed their benchmarks. Together with interaction effects, they explain the full gap between your portfolio and benchmark returns.

Can performance-attribution identify why my portfolio underperformed?

Yes. performance-attribution identifies sources of underperformance vs benchmark by decomposing active returns. It reveals whether losses came from poor allocation decisions (betting on the wrong sectors), weak security selection (picking underperforming stocks), or both. This breakdown helps you diagnose whether the issue was strategic positioning or stock-picking execution.

Does performance-attribution support fixed-income and currency analysis?

Yes. performance-attribution attributes fixed-income returns to yield, duration, curve positioning, and credit effects. For international portfolios, it isolates currency attribution separately, showing how FX movements impacted returns independent of security selection. This multi-asset approach covers equities, bonds, and currency drivers in a unified framework.

How does performance-attribution handle factor-based decomposition?

performance-attribution supports factor-based performance decomposition, breaking active returns into alpha contribution and factor exposures. This approach links returns to systematic risk factors (value, momentum, size, etc.), revealing whether outperformance came from factor tilts or genuine alpha generation independent of factor bets.

Can performance-attribution link attribution effects across multiple periods?

Yes. performance-attribution links multi-period attribution effects geometrically across time, ensuring that period-by-period decompositions compound correctly. This prevents arithmetic distortions and provides an accurate cumulative view of how allocation, selection, and interaction effects contributed to total active return over longer horizons.

SKILL.md

rendered from the published skill — quoted content, verbatim

Performance Attribution

Core Concepts

Brinson-Fachler Attribution (Single Period)

The classic equity attribution model decomposes active return (portfolio return minus benchmark return) into three effects:

  • Allocation effect: Value added by over/underweighting sectors relative to the benchmark
  • A_i = (w_p,i - w_b,i) × (R_b,i - R_b)
  • Rewards overweighting sectors that outperform the total benchmark
  • Selection effect: Value added by picking better securities within each sector
  • S_i = w_b,i × (R_p,i - R_b,i)
  • Rewards outperforming the sector benchmark regardless of weight

(truncated - see the full file via the links below)

Read as markdown · JSON record · Browse the source repository

File tree — 2 files
plugins/wealth-management/skills/performance-attribution/SKILL.md
plugins/wealth-management/skills/performance-attribution/scripts/performance_attribution.py

Related skills

Tags

return-decomposition benchmark-comparison skill-assessment factor-exposure currency-impact bond-analytics active-management performance-measurement portfolio-diagnostics multi-asset-class