Decision-first hierarchy
Primary business questions lead the interface; supporting channel charts follow rather than compete for attention.
A client-facing reporting product that brings spend, behaviour and enquiries into one filterable view.

Monthly PDF reports were static and easy to ignore. Clients needed an on-demand view of performance without learning several analytics platforms.
Scheduled source pipelines
Warehouse models
Flask API
Account-scoped access
React and Recharts interface
Designed and shipped the scheduled pipelines, warehouse models, Flask API and client-facing interface end to end.
Scoped access by client so each account resolves only its own reporting rows.
Computed date-range and channel filters server-side to keep the interface responsive and definitions consistent.
Designed the visual hierarchy around decisions: enquiries, spend, cost per enquiry and source-level comparison.
Primary business questions lead the interface; supporting channel charts follow rather than compete for attention.
Shared calculations prevent different screens from drifting into conflicting definitions.
Per-client access control is part of the data path rather than an interface-only filter.