Case Study

5 Dashboards on 9 Million Orders

A full replacement of a legacy Looker extension — rebuilt in React + TypeScript with 99% fewer API calls and custom chart rendering.

An e-commerce order-management platform was running a Looker extension that triggered 2,400+ API calls per page load, had no layout customisation, and was showing wrong KPIs due to SQL fanout bugs. We rebuilt it from the ground up — 5 dashboards, 9.1M live orders, $585M revenue volume.

E-commerce SaaS · USA·React 18TypeScriptRechartsLooker SDKBigQuery
Home Services Analytics|Last 30 days ▾1 May 202631 May 2026
HCPGHLAuto-refresh daily

New Leads

186

12% vs last mo

GoHighLevel

Book Rate

42%

4 pts vs last mo

GHL + HCP

Jobs In Progress

34

Housecall Pro

Estimates Written

$128K

9% vs last mo

Housecall Pro

Completed Revenue

$94K

7% vs last mo

Housecall Pro

AR Outstanding

$21K

2% vs last mo

Housecall Pro

Lead Pipeline

GHL
New Lead186
Contacted142
Estimate Sent98
Booked78
Won52

WIP by Job Type

HCP
Water Mitig.
14
Mould Remed.
12
Crawl Space
8
05101520

34 active jobs total

Book Rate Trend

GHL
Week 1Week 2Week 3Week 4

▲ +4 pts month-over-month

Leads by Source

GHL
Web / SEO
72
Referral
58
Biz Dev
34
Google Ads
22
050100150186

Completed Revenue (30d)

HCP
actual forecast

AR Ageing

HCP
Current (0–30 days)$12,400
Overdue (31–60 days)$5,800
Late (61–90 days)$2,100
90+ days$700

Total: $21,000

Estimates Written vs Closed (30d)

HCP

Written

Closed

Active WIP Trend

HCP
May 1May 8May 15May 22May 31
At a glance

Results That Speak for Themselves

9.1M

Live orders in production

99%

API call reduction (2,400 → ~11)

$585M

Revenue volume tracked

83

Tiles across all 5 dashboards

From challenge to outcome

The Problem & Our Approach

A Legacy Extension That Couldn't Scale

The existing Looker extension embedded native dashboard tiles via the Embed SDK — triggering over 2,400 individual API calls per page load. Every page visit was slow, blank-screen interstitials lasted 2-3 seconds, and there was no way to customise layouts or add date presets.

  • 2,400+ Looker API calls per page load
  • No drag-and-drop layout or date presets
  • Blank tiles when underlying tables were empty
  • 5 SQL fanout bugs inflating KPIs — wrong numbers shown to customers
  • No per-tenant embed security
  • 2-3 second blank-screen interstitial on every load

Five Dashboards Rebuilt From the Ground Up

We rebuilt the extension in React 18 + TypeScript using Recharts for rendering instead of Looker native tiles. By batching queries and parallelising SDK initialisation, we reduced API calls from 2,400 down to ~11 per page load.

  • Recharts instead of Looker native tiles — full rendering control
  • Parallelised Looker Embed SDK init — zero blank-screen interstitial
  • 3-hour localStorage cache — instant repeat visits
  • Client-side D|M|Y aggregation from day-level data
  • React-grid-layout for drag-and-drop personalisation
  • Cookieless embed v2 + service account for per-tenant isolation
  • Holt-Winters revenue forecast built in
  • Graceful degradation on empty tables

What We Achieved

Full extension replacement live in production with 9.1M orders
API calls reduced from 2,400+ to ~11 per page load (99% reduction)
Zero blank-screen interstitial — instant perceived load
Drag-and-drop layout personalisation per user
Graceful degradation on empty tables — no more blank tiles
Per-tenant embed isolation via cookieless embed v2 + service account
Holt-Winters revenue forecast shipped as part of the Summary dashboard
5 SQL fanout KPI bugs identified and corrected

The Five Dashboards

Each dashboard was designed around a specific decision — from executive revenue overview to granular asset tracking.

  • Summary (23 tiles) — Revenue, orders, AOV, forecasts
  • Shipping & Alerts (16 tiles) — Shipment volume, carrier mix, transit days
  • Returns (17 tiles) — Return rate, reasons, ageing
  • Asset Retrieval (13 tiles) — QR code usage, asset tracking
  • Action Alert (14 tiles) — Email metrics, send volumes

Before vs. After

DimensionBeforeAfter
API calls per page load2,400+~11
Blank-screen interstitial2-3 secondsZero
Layout customisationNoneDrag-and-drop
Date presetsNoneFull range options
KPI accuracySQL fanout errors on 5 KPIsIndependently validated
Embed securityNoneCookieless embed v2 + service account

Engineering Decisions That Mattered

  • Client-side compute fills data gaps without a server round-trip
  • 3-hour localStorage cache makes repeat visits instant — no API call at all
  • Holt-Winters forecasting) is computed client-side on the fetched day-level data
  • Bundle size: 961 KiB — within acceptable range for an authenticated B2B extension
  • Parallel Looker Embed SDK initialisation eliminated the blank-screen interstitial entirely

Discuss a similar E-commerce SaaS project

Lets Viz runs a paid discovery audit ($500–1,000, credited toward the project) to scope your requirements, data model, and architecture before writing a line of code.

From Lets Viz

Helping companies make data-driven decisions to achieve their Goals

Experience superior data analysis with our custom dashboards. Specialising in all tools and technologies, we turn data into visually compelling, actionable insights.

NDA-safe · No obligation · Clear next steps