Whitney Werner.
← Selected work02 / DATA PLATFORM · ECOMMERCE REPORTING

Multi-Organization Performance Reporting Platform

I turned a manually assembled marketing scorecard into a private, multi-organization KPI reporting platform. Teams can review source-backed metrics, goals, and trends in their own company workspace, with hourly refreshes and a trusted view across four regions.

Private reporting application · Next.js · Vercel · Supabase
34weekly metrics per market4regional views + worldwide1hscheduled refresh
INTERFACE STUDY

From scattered reports to a working view.

This simplified screen shows how the team can move from a metric to its goal, comparison, and trend. Display data is illustrative.

PERFORMANCE / KPI DASHBOARDPRIVATE WORKSPACE
ORGANIZATIONExample company ⌄Google sign-in · member access
REGION
VIEW
METRICS / GOALS
Revenue● Goal met
Orders● Goal met
Acquisition cost● Review
Email performance● Goal met
Targets set by the team for each metric
TREND / COMPARISON

Worldwide · Monthly

Current period Prior period
Daily → yearly breakdownsHistorical data available

Illustrative interface study. Values and trend shapes shown here are not actual client results.

The problem

The marketing team was manually collecting numbers from commerce, advertising, email, analytics, search, customer support, and site performance platforms. Updating the scorecard took roughly 2–4 hours per person each week, before the extra work of pulling comparisons or making charts. Importing data competed with the time needed to interpret it.

The team also needed to understand performance by market and at different time scales. A single monthly total could not answer a question about a daily shift, quarterly trend, or regional goal.

BEYOND REPORTING

Beyond saving time, the platform provides trusted metrics and history that help the team connect decisions with outcomes.

What I owned

I designed and built the React and Next.js reporting interface, server-side refresh routes, and custom MCP connections. I maintained the connections in GitHub and deployed them on Vercel through a connected workflow. The hourly schedule and member-initiated refresh use the same validation flow, so the team sees one consistent definition of a trusted update. I also built the organization and user-management experience around the reporting workspace.

I carried the original scorecard into a system for goals, period comparisons, historical trends, and regional analysis. Google sign-in and membership-based access protect each company workspace; Supabase and PostgreSQL store versioned metric snapshots behind authenticated access.

How the refresh works

01 / COLLECTProtected source calls

Server-side MCP connections retrieve canonical commerce and analytics metrics.

02 / VALIDATEOne refresh pipeline

Scheduled and on demand requests run the same regional checks and reconciliation.

03 / PUBLISHTrusted snapshot

A complete four-region run becomes the latest readable version; incomplete attempts cannot displace it.

The current-week trusted refresh uses protected Shopify Admin, GA4, and Triple Whale routes. The collection layer runs server-side on Vercel; the Next.js API and Supabase database serve authenticated KPI dashboard views.

Custom MCP connections I built

Commerce & operations

Shopify Admin · Triple Whale · Amazon Selling Partner API · Inventory Planner

Paid media

Meta Ads · Google Ads · Amazon Ads · TikTok Ads

Analytics, search & experience

GA4 · Google Search Console · Ahrefs · PageSpeed Insights · CrUX · Microsoft Clarity · Mobile Audit

Lifecycle & support

Klaviyo · Reamaze

The broader connection layer supports reporting work beyond the three sources in the protected current-week refresh; each connection is not claimed as a source for every scorecard metric.

Reliability built in

A weekly market snapshot follows a fixed 34-metric contract. Daily values sit alongside the canonical weekly values, with explicit partial and final status so an in-progress day is not presented as complete.

For additive metrics, the refresh checks that the daily breakdown reconciles with the weekly source value within bounded, source-aware allowances. An invalid or incomplete four-region run is retained for review but never replaces the latest trusted snapshot. This protects the team's working view when a source fails or a metric does not reconcile.

Next.js API routesJavaScript / ReactSupabase PostgreSQLMCP integrationsScheduled jobsSnapshot validation

Designed for teams

Authorized users sign in with Google and enter a company-specific reporting workspace. The application supports adding organizations and managing who can access their reporting views, including approved outside collaborators. Membership checks protect the underlying data as well as the interface.

Goals can be managed alongside the metrics, with status colors that make results needing attention visible. A trends view follows the same region and reporting-period controls as the main dashboard.

Designed for analysis

01Region-aware reporting

US, CA, AU, and UK views, plus a worldwide view for the overall picture.

02Time at the right scale

Daily, weekly, monthly, quarterly, and yearly breakdowns, with authenticated weekly history and clear partial versus final status.

03Goals in context

The team can set targets per metric and immediately see whether a goal is met.

04Comparisons and trends

Period comparisons and visual charts make movement easier to examine.

The result

The original scorecard took roughly 2–4 hours of manual collection per person each week. Hourly updates remove that recurring work. Pulling ad hoc comparisons or building charts by hand would have taken additional time; the platform makes those views available within the reporting workflow. Member-initiated refreshes provide current data without replacing a trusted snapshot with a failed run.

This project shows my range across frontend development, server-side integration, data contracts, organization and user management, access control, validation, and the operational details that make an internal tool trustworthy.

← Explore more work