joellewis avatar

Performance Attribution

If you need to explain where portfolio alpha actually came from, this breaks down returns into allocation, selection, and interaction effects using Brinson-Fachler methodology. It handles equity attribution, factor-based decomposition (think Fama-French loadings), fixed-income components like yield and curve shifts, and currency effects for international portfolios. The skill covers multi-period linking methods so your attribution compounds correctly across time horizons. Good for answering "did I beat the benchmark because of sector bets or stock picking" questions with actual numbers. The worked examples show real calculations with weights and returns, which is helpful since attribution formulas get messy fast.

skills.sh installs
705
GitHub stars
224
last updated
Aug 21, 2026

Install

$ npx -y skills add joellewis/finance_skills --skill performance-attribution --agent claude-code

Installs into .claude/skills of the current project.

Files

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
  • Interaction effect: Combined effect of both overweighting and outperforming (or vice versa)
    • I_i = (w_p,i - w_b,i) × (R_p,i - R_b,i)
    • Captures the joint benefit of overweighting a sector AND selecting better securities in it
  • Total active return: R_p - R_b = Σ A_i + Σ S_i + Σ I_i

Where: w_p,i = portfolio weight in sector i, w_b,i = benchmark weight in sector i, R_p,i = portfolio return in sector i, R_b,i = benchmark return in sector i, R_b = total benchmark return.

Sponsors

Details

Repository
github.com/joellewis/finance_skills
Categories
Debugging, Design & UI/UX, Finance & Trading
First seen
Jun 3, 2026

More from joellewis/finance_skills

All 84

Recommended

More Debugging
1aaronontheweb avatardatabase-performanceaaronontheweb/dotnet-skillsDatabase access patterns for performance. Separate read/write models, avoid N+1 queries, use AsNoTracking, apply row limits, and never do application-side joins700skills.sh installs
2aaronontheweb avatartype-design-performanceaaronontheweb/dotnet-skillsDesign .NET types for performance. Seal classes, use readonly structs, prefer static pure functions, avoid premature enumeration, and choose the right collectio684skills.sh installs
3aj-geddes avatarperformance-testingaj-geddes/useful-ai-promptsDesign and execute performance tests to measure response times, throughput, and resource utilization. Use for performance test, load test, JMeter, k6, benchmark609skills.sh installs
4jeremylongshore avatarperformance-lighthouse-runnerjeremylongshore/claude-code-plugins-plus-skillsManage performance lighthouse runner operations. Auto-activating skill for Frontend Development. Triggers on: performance lighthouse runner, performance lightho604skills.sh installs
5manaflow-ai avatarcmux-debug-windowsmanaflow-ai/cmuxManage cmux debug windows and related debug menu wiring for Sidebar Debug, Background Debug, and Menu Bar Extra Debug. Use this when the user asks to open/tune 604skills.sh installs
6secondsky avatarweb-performance-optimizationsecondsky/claude-skillsOptimizes web application performance through code splitting, lazy loading, caching strategies, and Core Web Vitals monitoring. Use when improving page load tim576skills.sh installs