Learn by Directing AI
All materials

CLAUDE.md

Movimiento Fitness Dashboard

Client: Diego Vargas, CEO and Founder of Movimiento Fitness Project: Build a Metabase dashboard for a four-location gym chain in Costa Rica

What you're building

A Metabase dashboard that shows Diego the health of all four Movimiento Fitness locations at a glance. The dashboard must track memberships, revenue, retention, and class attendance with proper information hierarchy (primary KPI above the fold), accessibility (non-colour-only encoding), and durable design (handles a fifth location). Alongside the dashboard, you're producing a formal data quality assessment and automated metric validation tests.

Tech stack

  • Python 3.11+ (Miniconda, "analytics" environment)
  • DuckDB (data loading and querying)
  • Jupyter Notebook (analysis and profiling)
  • pandas (data manipulation)
  • Metabase via Docker (dashboard platform)
  • SQL mode for all Metabase panels

File structure

~/dev/analytics/p4/
  materials/
    CLAUDE.md              (this file)
    fitpro-export.csv      (FitPro gym management data -- all locations, 12 months)
    membership-types.md    (membership tier definitions and pricing)
    quality-assessment-template.md  (template for structured quality assessment)
    dashboard-design-checklist.md   (checklist for dashboard design review)
  notebooks/
    profiling.ipynb        (data profiling and exploration)
    quality-assessment.md  (completed quality assessment deliverable)
    metric-definitions.md  (retention rate, revenue per member, class attendance)
    metric-tests.py        (automated validation tests)
  dashboard/
    (Metabase configuration notes and SQL queries)
  README.md                (project documentation)

Key materials

Work breakdown

  1. Data profiling -- load the FitPro export, profile comprehensively, identify data shape and initial patterns
  2. Quality assessment -- fill the quality assessment template, classify issues as fixable/flaggable/blocking, discover hidden constraints through client conversation
  3. Metric definitions and tests -- define retention rate, revenue per member, class attendance with precise operational definitions. Write automated validation tests for each metric.
  4. Dashboard design -- build Metabase dashboard with information hierarchy, accessibility, and durability. Primary KPI (retention) above the fold. All panels use SQL mode.
  5. Client review -- share dashboard with Diego, address feedback, handle scope creep, adjust location comparison for pricing differences
  6. Project close -- final tests, documentation, commit, push

Verification targets

  • All metric validation tests pass
  • Dashboard primary KPI visible without scrolling
  • All status indicators distinguishable without colour (accessibility check)
  • Dashboard handles a new location appearing in the data (durability check)
  • Quality assessment classifies every issue with business impact
  • Metric definitions documented in plain language and SQL

Commit convention

Commit after completing each unit's work. Descriptive messages that capture what was done and any decisions made. Example: "Define retention rate -- downgrades count as churn, documented trade-off."

Metabase notes

  • Use SQL mode for all dashboard panels (not the visual query builder)
  • Metabase runs via Docker at localhost:3000
  • Start with: docker compose up -d using the docker-compose.yml from materials