import { PerformanceAttributionOptions } from '../schemas/PerformanceAttributionOptionsSchema'; import { PerformanceAttributionResult } from '../schemas/PerformanceAttributionResultSchema'; /** * Calculate Performance Attribution * * Performance attribution decomposes excess returns into three components: * 1. Asset Allocation Effect: Returns from overweighting/underweighting sectors/assets * 2. Security Selection Effect: Returns from picking better/worse securities within sectors * 3. Interaction Effect: Returns from the combination of allocation and selection * * Brinson Model Formula: * - Allocation Effect = Σ(w_p - w_b) × r_b * - Selection Effect = Σ(w_b × (r_p - r_b)) * - Interaction Effect = Σ(w_p - w_b) × (r_p - r_b) * * Where: * - w_p = portfolio weights, w_b = benchmark weights * - r_p = portfolio returns, r_b = benchmark returns * * @param options - Portfolio returns, benchmark returns, asset returns, and weights * @returns Performance attribution breakdown * * @example * ```typescript * const attribution = calculatePerformanceAttribution({ * portfolioReturns: [0.05, 0.03, 0.07], * benchmarkReturns: [0.04, 0.03, 0.06], * assetReturns: [ * [0.06, 0.04, 0.08], // Asset 1 returns * [0.04, 0.02, 0.06] // Asset 2 returns * ], * portfolioWeights: [ * [0.6, 0.5, 0.7], // Portfolio weights over time * [0.4, 0.5, 0.3] * ], * benchmarkWeights: [ * [0.5, 0.5, 0.5], // Benchmark weights over time * [0.5, 0.5, 0.5] * ], * method: 'brinson' * }); * ``` */ export declare function calculatePerformanceAttribution(options: PerformanceAttributionOptions): PerformanceAttributionResult;