@railpath/finance-toolkit
Version:
Production-ready finance library for portfolio construction, risk analytics, quantitative metrics, and ML-based regime detection
37 lines (36 loc) • 1.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PerformanceAttributionOptionsSchema = void 0;
const zod_1 = require("zod");
exports.PerformanceAttributionOptionsSchema = zod_1.z.object({
/**
* Portfolio returns for each period
*/
portfolioReturns: zod_1.z.array(zod_1.z.number()).min(1),
/**
* Benchmark returns for each period
*/
benchmarkReturns: zod_1.z.array(zod_1.z.number()).min(1),
/**
* Asset returns for each asset and period (asset x period matrix)
*/
assetReturns: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1),
/**
* Portfolio weights for each asset and period (asset x period matrix)
*/
portfolioWeights: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1),
/**
* Benchmark weights for each asset and period (asset x period matrix)
*/
benchmarkWeights: zod_1.z.array(zod_1.z.array(zod_1.z.number())).min(1),
/**
* Attribution method
* - 'brinson': Brinson attribution model
* - 'arithmetic': Arithmetic attribution
*/
method: zod_1.z.enum(['brinson', 'arithmetic']).default('brinson'),
/**
* Annualization factor (e.g., 252 for daily, 12 for monthly, 1 for annual)
*/
annualizationFactor: zod_1.z.number().positive().default(252),
});