Neonvil Logo
Budget Calculator
Neonvil Logo

contact@neonvil.com

© 2026 Neonvil Inc.


Budget Calculator
Back to Case Studies
FEATURED INSIGHT
The platform brought institutional-grade tools to our team without the institutional price tag.

NEONVIL & Confidential FinTech Client

A Case Study: Building a Full-Stack Institutional Portfolio Analytics Platform for Corporate Finance Teams
Institutional Portfolio Analytics Platform

Business Outcome

A three-service institutional portfolio analytics platform, delivered end-to-end and running in production.

FULL-STACK DELIVERY
Full-stack delivery: React SPA, Node.js API, Python optimization service
Institutional-Grade Analytics
Institutional-grade analytics: Brinson attribution, Sharpe/Sortino suite, multi-horizon risk
Offline-First + Multi-Tenant
Offline-first persistence with Azure AD multi-tenant isolation

Context & Challenges

The platform had to run advanced quantitative workflows with no dedicated compute backbone — statistical computation in-browser to keep the UI responsive, and algorithmically dense portfolio optimization in a stateless serverless environment where every invocation starts cold.

Four critical engineering challenges:

01

Serverless cold-start connection exhaustion: singleton Prisma client with warm-instance detection.

02

Yahoo Finance rate limits on concurrent fetches: 10-parallel concurrency limiter with per-ticker fallback.

03

CVaR optimization in a stateless context: Monte Carlo bootstrap at 3,000 resamples / 1% alpha, every invocation cold.

04

In-browser probability modeling (CDF, inverse CDF, covariance, multi-horizon risk) with no math backend — memoized for responsiveness.

Project Goals

Frontend SPA

A React 19 SPA with offline-first state (Zustand + IndexedDB) and multi-format export.

Backend API

A serverless Node.js API on Azure Functions, backed by PostgreSQL/Prisma, with Azure AD auth and Yahoo Finance ingestion.

Optimization Service

A stateless Python service running MVO, Information Ratio, CVaR, Risk Parity, and Custom strategies via SciPy SLSQP.

Our Solution

Three services, three responsibilities. The SPA owns the interface. The Node.js API owns data and access control. The Python service owns the mathematical core.

INTERFACE
Frontend SPA

Visual interface & user interaction

Portfolio management with offline persistence

Asset allocation modeling with scenario comparison

Backtesting engine with attribution against standard benchmarks

Attribution analysis with Brinson decomposition

DATA & SECURITY
🟢
Backend API

Persistence, ingestion, access control

Yahoo Finance integration: prices, sector/industry, Brinson attribution

Workspace-scoped multi-tenant isolation via Azure AD

Fund statistics: Sharpe, Sortino, alpha, beta, max drawdown, volatility, return

MATHEMATICAL CORE
🐍
Optimization Service

Heavy math & risk modelling

MVO
Information Ratio
CVaR
Risk Parity
Custom

Monte Carlo CVaR bootstrap: 3,000 resamples at 1% alpha

Dynamic risk-free rate via SHV ETF; NaN detection with >50% threshold exclusion

Constraint system: long-only, fully-invested, 30% max weight per asset

Effort Allocation

100%

Requirements & Specification (12%)

Business Logic (23%)

Codebase (40%)

Infrastructure (15%)

Security (10%)

Infrastructure & Technologies

FRONTEND

React 19 + Vite

Chosen to keep a data-dense analytics UI responsive — concurrent rendering prevents heavy chart and matrix recalculations from blocking user interaction, and fast HMR accelerates iterative quant work.

BACKEND
🟢

Node.js / Azure Functions

Chosen for a pay-per-invocation backend that scales elastically during traffic spikes in price ingestion and attribution workloads, with no idle infrastructure between trading sessions.

OPTIMIZATION
🐍

Python + SciPy

Chosen to run the mathematical core of the platform — constrained portfolio optimization, CVaR Monte Carlo, and covariance modeling rely on SciPy's numerical stack, which has no practical equivalent in JavaScript.

DATABASE
🐘

PostgreSQL + Prisma

Chosen for ACID-guaranteed storage of financial records — the relational model cleanly expresses portfolio hierarchies and historical snapshots, while Prisma keeps schema migrations type-safe across the Node.js layer.

INFRASTRUCTURE
🔷

Azure

Chosen to align with the client's enterprise security posture — Azure AD provides the identity backbone for multi-tenant workspace isolation, and managed services remove ops overhead for a lean team.

Back to Case Studies