Performance Attribution
The canonical skill for decomposing portfolio and fund returns into explanatory components. Any command that needs return attribution or benchmark comparison MUST invoke this skill.
Trigger Conditions
Activated when any command needs:
- Income vs. appreciation return decomposition
- Attribution by property type, geography, or vintage year
- Benchmark comparison (vs. NPI, ODCE)
- Allocation and selection effect analysis
- Identification of top contributors and detractors
Business Context
Performance attribution answers the question "why did the portfolio return what it did?" by decomposing total return into components that investors and managers can act on. Income vs. appreciation reveals the return character. Property type and geographic attribution show whether performance came from allocation decisions (what we own) or selection decisions (how well we manage it). Benchmark comparison quantifies value added vs. a passive alternative.
Workflow
Return Decomposition: Income vs. Appreciation
- Income return = Net Operating Income / Beginning Market Value
- Represents cash yield generated by operations
- Driven by: occupancy, rents, expense control
- Appreciation return = (Ending Value - Beginning Value - Capital Expenditures) / Beginning Market Value
- Represents change in property value
- Driven by: cap rate movements, NOI growth capitalized into value
- Total return = Income Return + Appreciation Return
- This is an approximation; for exact decomposition, use linked returns
- Calculate at property level, then weight to portfolio level
Attribution by Property Type
- Group properties by NCREIF type: Apartment, Industrial, Office, Retail, Hotel, Other
- For each type: calculate weighted average return, income component, appreciation component
- Calculate contribution to portfolio return: weight x segment return
- Compare each type's return to portfolio average to identify outperformers/underperformers
- Compare to NPI sector returns for benchmark context
Attribution by Geography
- Group properties by region (East, Midwest, South, West) or MSA
- For each geography: calculate weighted average return, income, appreciation
- Calculate contribution to portfolio return
- Compare to NPI geographic returns for benchmark context
Attribution by Vintage Year
- Group properties by acquisition year
- For each vintage: calculate weighted average return
- Identifies which acquisition cohorts are driving performance
- Useful for evaluating timing and entry pricing discipline
Benchmark Comparison Methodology
Using Brinson-Fachler attribution framework:
-
Allocation Effect: Did we overweight outperforming segments?
- Allocation = (Portfolio Weight - Benchmark Weight) x (Benchmark Segment Return - Benchmark Total Return)
- Positive = overweight in segments that outperformed the benchmark
-
Selection Effect: Did our assets outperform the benchmark within each segment?
- Selection = Benchmark Weight x (Portfolio Segment Return - Benchmark Segment Return)
- Positive = our assets beat the benchmark within their segment
-
Interaction Effect: Combined impact of allocation and selection
- Interaction = (Portfolio Weight - Benchmark Weight) x (Portfolio Segment Return - Benchmark Segment Return)
-
Total Excess Return = Allocation + Selection + Interaction
Benchmark Selection
| Portfolio Type | Primary Benchmark | Secondary Benchmark |
|---|
| Core open-end | NCREIF ODCE | NCREIF NPI |
| Core closed-end | NCREIF NPI | Custom blend |
| Value-add | NCREIF NPI + spread | Vintage-matched funds |
| Opportunistic | Absolute return hurdle | NCREIF NPI + spread |
Output Structure
- Total return decomposition (income + appreciation)
- Property type attribution table (weight, return, contribution, vs. benchmark)
- Geographic attribution table (weight, return, contribution, vs. benchmark)
- Vintage year attribution table
- Allocation/selection/interaction effects summary
- Top 3 contributors and top 3 detractors (property-level, with drivers)
QA Checks
- Income + appreciation = total return at property and portfolio level
- Weighted contributions sum to portfolio total return
- Allocation + selection + interaction = total excess return vs. benchmark
- Property type and geographic categories are mutually exclusive and exhaustive (100% coverage)
- Benchmark data is from the same time period as portfolio returns
- Weighting basis (BOQ, EOQ, or average NAV) stated and applied consistently
- Top contributors/detractors have specific driver explanations, not generic
Edge Cases
- Single-property portfolio: Attribution by type/geography is not meaningful; focus on income vs. appreciation and versus benchmark
- Significant transaction activity: Properties bought or sold mid-period distort attribution -- consider excluding or pro-rating
- Negative total return: Attribution still applies; identify whether driven by income compression or value decline
- Stale valuations: If properties were not revalued during the period, appreciation return is unreliable -- note the limitation
Standards References
- NCREIF NPI methodology for return calculation and property classification
- NCREIF ODCE for open-end fund comparison
- Brinson-Fachler attribution model (adapted for real estate)
- NCREIF/PREA Reporting Standards for metric definitions