SaaS
Paysight
A reporting SaaS that stayed fast as customer data grew.
- Client
- Paysight (placeholder client)
- Industry
- Finance
- Year
- 2024
- Services
- Web Applications, UI/UX Design, AI & Automation
Overview
A payments analytics startup had a product that slowed to a crawl for its largest customers. We rebuilt the data layer and the interface around it.
Technology
- Next.js
- TypeScript
- Node.js
- PostgreSQL
- Redis
- OpenAI API
01 — Challenge
Challenge
Dashboards that loaded instantly in a demo took over twenty seconds for accounts with millions of transactions. The largest customers — the ones paying the most — had the worst experience, and two were close to churning.
02 — Strategy
Strategy
We profiled real production queries rather than guessing, and found the cost concentrated in a handful of unindexed aggregations recomputed on every view. The fix was pre-aggregation with incremental refresh plus a query layer that could serve both the default views and ad-hoc filtering. In parallel we redesigned the reporting screens around saved views, because most users were rebuilding the same report daily.
03 — Solution
Solution
A rebuilt analytics layer with materialised rollups refreshed incrementally, a filter engine that pushes work to the database, and a redesigned reporting interface with saved views, scheduled exports and a natural-language query assistant that translates a plain question into a filtered view the user can inspect and adjust.
What we built
The parts that carry the workload.
- 01
Incremental rollups
Pre-aggregated metrics refreshed on write instead of recomputed on read, with a documented freshness guarantee.
- 02
Saved views
Filters, columns and date ranges saved and shared across a team, removing daily report rebuilding.
- 03
Natural-language queries
A plain-English question resolved into a concrete filter set the user can see, verify and edit.
- 04
Scheduled exports
Reports delivered on a schedule in the formats the finance team actually reconciles against.
- 05
Multi-tenant permissions
Row-level access enforced in the database so a query can never cross a tenant boundary.
Screens
A look at the interface.
Analytics overview Saved views and filtering Scheduled report builder
Results
What changed after launch.
- Dashboard load
- 21s → 1.4sLargest tenant, P95
- At-risk accounts retained
- 3
- Support tickets on reporting
- −41%
- Data volume headroom
- 5×At the same response time
Figures shown are illustrative placeholders for this sample case study.
“The performance work saved two accounts we thought we had lost. What surprised us was how much of the win came from redesigning the workflow, not just the queries.”
Let’s build
Have a project like this?
Tell us where you are now and what needs to be true in six months. We will map an approach and give you a realistic estimate.
Prefer email? info@saftasoft.site
