Case Study
Fintech Analytics Dashboard for Investment Platform
We rebuilt a legacy investment reporting tool into a real-time analytics dashboard — cutting report generation time from 45 minutes to under 3 seconds.
- Client
- ClearVest Capital
- Industry
- Fintech
- Duration
- 12 weeks
- Delivered
- January 2026
Key Results
Report generation: 45 min → 3 sec
User session length +68%
Support tickets -54%
Lighthouse Performance: 94
Zero critical CVEs on launch
The Challenge
ClearVest Capital operated a decade-old internal reporting tool built on a legacy PHP stack. Portfolio managers were waiting up to 45 minutes to generate client performance reports — a bottleneck that was costing the firm client trust and analyst productivity.
The existing system had three core problems:
- Unoptimised database queries — every report triggered full table scans across millions of transaction rows
- Synchronous rendering — the UI blocked completely during report generation with no progress feedback
- No mobile access — analysts in client meetings had no way to pull live data on their devices
The brief was clear: rebuild the platform from the ground up, preserve the existing data model, and ship within 12 weeks.
Our Approach
Discovery & Architecture (Weeks 1–2)
We began with a two-week discovery sprint covering:
- Database query profiling with PostgreSQL
EXPLAIN ANALYZE - User interviews with six portfolio managers and two compliance analysts
- Competitor benchmarking against Bloomberg Terminal and Morningstar Direct
The key insight from interviews: users didn't need all data simultaneously — they needed the right data, instantly. This shaped our entire technical architecture.
Database Optimisation (Weeks 3–4)
Before touching the frontend, we optimised the data layer:
- Added composite indexes on
(client_id, date_range, asset_class)— the most common query pattern - Introduced materialized views for commonly run aggregations, refreshed nightly and on-demand
- Migrated from raw SQL to Prisma ORM with type-safe query builders
Result: the most complex report query dropped from 42 seconds to 180 milliseconds.
Application Layer (Weeks 5–9)
The new stack:
- Next.js 14 App Router with React Server Components for the data-heavy reporting views
- Server Actions for form submissions — eliminating a separate API layer
- Zustand for client-side dashboard state (filters, date ranges, selected portfolios)
- Recharts for data visualisation — chosen for its accessibility support and bundle efficiency
We implemented optimistic UI patterns so users see skeleton states and progressive data loading — the dashboard feels instant even when fetching large datasets.
Security Review (Week 10)
Given the financial data sensitivity, we ran a dedicated security sprint:
- Row-level security policies in PostgreSQL restricting analyst access to their assigned portfolios
- CSP headers blocking all third-party script injection
- Dependency audit with Snyk — 0 critical CVEs on launch
- Full audit logging of all data access events
QA & Launch (Weeks 11–12)
- 312 Jest unit and integration tests — 94% branch coverage
- Playwright E2E suite covering 18 critical user journeys
- Lighthouse audit: Performance 94 / Accessibility 97 / SEO 92
- Phased rollout starting with three pilot users before full firm deployment
Results
The platform launched on schedule after 12 weeks. Within the first month:
- Report generation time fell from an average of 45 minutes to under 3 seconds
- User session length increased by 68% — analysts were spending more time using the platform
- Support ticket volume dropped by 54% — the new UI was significantly more intuitive
- Zero unplanned downtime in the first 60 days post-launch
The compliance team specifically noted that the new audit logging feature — which wasn't in the original brief — became one of their most used tools.
Technical Stack
| Layer | Technology | |-------|-----------| | Frontend | Next.js 14, React, TypeScript | | Styling | Tailwind CSS | | State | Zustand | | Charts | Recharts | | Backend | Next.js API Routes, Server Actions | | Database | PostgreSQL, Prisma ORM | | Auth | NextAuth.js | | Testing | Jest, Playwright | | Hosting | Vercel (frontend), Supabase (database) |
