Software Design

Fishbowl Dashboard

Overview

A scalable system of analytics widgets built to help businesses understand guest behavior, campaign performance, and retention trends. The goal was a modular, consistent, and visually clear framework that works across multiple widget sizes and dashboard layouts, empowering users to make data-driven decisions at a glance.

The project aimed to give marketing and operations teams better visibility into guest engagement metrics and campaign outcomes. Previously, insights were scattered and inconsistent, making it difficult to compare segments or track performance over time.

Working as the sole designer, the process involved close collaboration with developers, the data engineering team, and business stakeholders — incorporating user feedback alongside strategic input from the CEO and board to ensure the system met both operational and executive needs.

Key Features

Consistency — Every widget follows the same structural logic, making them easy to scan and compare.

Readability — Data is prioritized through clear hierarchy, typography, spacing, and color.

Scalability — Widgets adapt seamlessly to different sizes (small, medium, large) without losing clarity.

Modularity — Components like filters, tabs, and KPIs can be reused across multiple widget types.

Widget Library

Overview

Color Logic & State Variations

The Transactions widget is shown here as an example of how color and states were used across the entire system. Green indicates positive change, red signals declines, blue shows no change, and yellow represents cases where no data has been selected.

Dropdown Design

The Redeemed & Rejected widget is shown here as an example of how dropdowns were used to make widgets more flexible without cluttering the interface. By default, it presents high-level metrics, and users can expand the dropdown to select different time frames. This design allows them to view performance over specific periods while keeping the widget compact and consistent with the overall dashboard system.

Expandable Widgets

The Most Valuable Guests widget demonstrates how widgets can expand to reveal deeper insights. In its default state, it highlights key guest metrics at a glance. When expanded, it displays additional information, including a graph that visualizes trends over time. This design balances quick readability with the ability to explore more detailed patterns, ensuring that users can access both high-level KPIs and in-depth analysis within the same component.

Designed for Different Goals

The widget system was built to support flexible dashboards that can be tailored to user needs. While a set of default dashboards is provided, users are free to design their own based on their goals and priorities. The four examples below illustrate how the same widget library can be assembled into highly specialized dashboards:

1. Main Dashboard – Our recommended configuration, optimized to provide a balanced view of overall performance and guest activity.

2. Marketing Dashboard – Focused on campaign effectiveness, featuring widgets like SMS and Email Analyzers alongside performance KPIs.

3. Offers Dashboard – Centered on redemption and rejection trends, helping teams monitor the success of promotional offers over time.

4. Guests Dashboard – Highlights guest-centric insights such as Recency, Frequency, and Most Valuable Guests, providing a clear picture of customer engagement.

These examples demonstrate how the system adapts to different business needs while maintaining a consistent and scalable design language. Users can start with defaults or fully customize their dashboards to track what matters most to them.

Interaction Design

Interactivity was a core part of the system. Users can:

• Filter data by timeframes, channels, or guest segments.

• Drill down into detailed views by clicking metrics (e.g., clicks, unsubscribes).

• Switch states between default KPIs and deeper visualizations.

• Expand widgets to reveal more specific data or charts, allowing high-level scanning without sacrificing depth when needed.

These patterns, combined with the consistent use of color-coded indicators, made the system more dynamic, turning static KPIs into actionable insights that can be read in seconds

Outcome/Impact

The result was a unified widget system that streamlined how data is presented and consumed. Teams could now:

Compare different KPIs consistently across dashboards.

Quickly identify trends, guest behaviors, and campaign performance thanks to color-coded signals and expandable charts.

Personalize dashboards to highlight the metrics that matter most, while relying on predefined defaults as starting points.

Save time during development and onboarding, since new widgets could be created from existing patterns.

This not only improved usability for end-users but also aligned designers, engineers, and stakeholders around a shared design system.

Reflection

This project reinforced the importance of modular design systems in complex products. Balancing data density with clarity ensured that widgets were both information-rich and approachable. Close collaboration with engineering was key to making sure designs were practical to implement at scale.

Next steps include exploring personalized dashboards — allowing users to define which KPIs matter most to them — as well as adaptive widgets that surface anomalies or opportunities automatically.

For next steps, I will explore personalized dashboards, allowing users to define which KPIs matter most to them, as well as adaptive widgets that highlight anomalies or opportunities automatically.