Skip to content

#225 Implement portfolio performance analytics (APY, Sharpe ratio, dr…#241

Open
Kappa16 wants to merge 2 commits into
Neurowealth:mainfrom
Kappa16:#225-Implement-portfolio-performance-analytics-(APY,-Sharpe-ratio,-drawdown)-FIX
Open

#225 Implement portfolio performance analytics (APY, Sharpe ratio, dr…#241
Kappa16 wants to merge 2 commits into
Neurowealth:mainfrom
Kappa16:#225-Implement-portfolio-performance-analytics-(APY,-Sharpe-ratio,-drawdown)-FIX

Conversation

@Kappa16

@Kappa16 Kappa16 commented Jun 26, 2026

Copy link
Copy Markdown

Findings:

The codebase already collected rich YieldSnapshot history (principal + yield + timestamp) but had no consolidated analytics endpoint.
Existing analytics routes (/apy-history, /user-yield, etc.) were limited.
All required metrics can be derived purely from existing data.
Fix Features Implemented:

calculateRealizedAPY() — Uses CAGR formula, manually verified in tests.
calculateSharpeRatio() — Uses daily returns + annualized, respects RISK_FREE_RATE (default 0).
calculateMaxDrawdown() — Peak-to-trough calculation.
calculateProtocolAllocation() — From positions (preferred) or snapshots.
computeAnalyticsMetrics() — Orchestrates all metrics.
New route: GET /api/analytics?period=30d|90d|1y
Full unit test coverage for every calculation function.
OpenAPI spec + API reference updated.
Risk-free rate configurable via env.
Key code excerpt (src/utils/analytics.ts):

TypeScript

export function calculateRealizedAPY(snapshots, periodDays) { /* CAGR / }
export function calculateSharpeRatio(snapshots, rfRate = 0) { /
risk-adjusted / }
export function calculateMaxDrawdown(snapshots) { /
peak-to-trough */ }
export function calculateProtocolAllocation(...) { ... }
export async function computeAnalyticsMetrics(...) { ... }

CLOSE #225

@drips-wave

drips-wave Bot commented Jun 26, 2026

Copy link
Copy Markdown

@Kappa16 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…nce-analytics-(APY,-Sharpe-ratio,-drawdown)-FIX
@Kappa16

Kappa16 commented Jun 28, 2026

Copy link
Copy Markdown
Author

PLEASE CAN YOU REVIEW AND PING ME BACK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement portfolio performance analytics (APY, Sharpe ratio, drawdown)

1 participant