Spark Dashboard
Consolidating four BI tools into one app
Ownership
UI Developer
Team
Data Intelligence Team
Key Result
8s -> 2s Load Time
Overview
Internal analytics dashboard for 50+ data analysts at Spark New Zealand, replacing a mix of Power BI reports, Excel exports, and direct SQL workflows.
The Challenge
Analysts were working across multiple tools with inconsistent models, slow performance, and a high dependency on IT support for report changes.
Constraints
- •Migration had to happen without breaking existing analyst workflows.
- •Database safety mattered as much as UI flexibility.
- •Legacy report logic had undocumented business assumptions.
Decision Log
Problem
Query state sharing broke with high filter counts.
Decision
Used URL params for critical state plus localStorage hash references for full state.
Tradeoff
More implementation complexity and some cache edge cases.
Impact
Shareable links for complex views without URL explosion.
Problem
Client-side rendering collapsed under large datasets.
Decision
Moved heavy aggregation to backend and shipped rollups.
Tradeoff
Reduced ad hoc pivot flexibility.
Impact
Interactive chart latency dropped to usable levels.
Approach
1. The State Problem
Complex query state needed to be shareable without overloading the URL. The solution combined URL parameters for critical filters with local persisted state for larger configurations.
2. The Performance Cliff
Client-side rendering broke down on larger datasets, so aggregation moved to the backend and the client received smaller rollups instead of raw data.
3. The Migration
Migration had to preserve existing analyst work. An import tool handled part of the old Power BI configuration, with the rest recreated manually where necessary.
Outcome
The dashboard shipped to 50+ users, reduced load times, and cut down the dependency on IT for routine reporting changes.
8s -> 2s
Load Time
50+
Users
4
Tools Replaced
Learnings
- →A lot of performance work is about moving computation to the right place.
- →Migration work often takes longer than replacement UI work.
- →Flexible query tools need guardrails to protect shared infrastructure.
- →Legacy behavior often encodes business rules, even when it looks accidental.
Anti-Patterns Avoided
- ×Unlimited free-form query execution against production tables.
- ×Big-bang migration without compatibility bridges.
- ×Treating analyst pain as a training problem instead of product debt.
Next Iterations
- →Query cost previews before run to prevent accidental heavy joins.
- →Saved-view governance with team-level ownership and audit trails.
Get In Touch
If you want to talk about similar work, email me.
Contact is the simplest place to start.
Next project
Vape Quit Coach