Week 11 - Dashboarding

Introduction to Dashboarding

Metabase Setup

Dashboards in Metabase

Streamlit Fundamentals

Building a Metrics Dashboard

Presenting Metrics

Practice

Gotchas & Pitfalls

Assignment: Build Two Dashboards

Slides (PDF)

Career relevance: Week 11

Glossary: Week 11

Going Further

History of Dashboarding

Glossary: Week 11

Quick definitions for every term introduced in bold across Week 11 (Chapters 1-6). Click the chapter backlinks to jump to where the term is first used in context.


analytical dashboard

A stakeholder-facing dashboard that answers "what is the business doing?": trip counts, revenue, trends. Built in Metabase this week. (Used in Introduction to Dashboarding)

code-first dashboard

A dashboard built in code rather than point-and-click, giving full control over queries, layout, and custom logic. Built in Streamlit this week, reading the same marts as Metabase. (Used in Introduction to Dashboarding)

business intelligence (BI)

The practice of turning data into charts and dashboards people can read without writing code. Metabase, Tableau, Power BI, and Looker are BI tools. (Used in Introduction to Dashboarding)

no-code

A tool or platform that lets you build dashboards, charts, and queries using a point-and-click interface or visual drag-and-drop elements instead of writing programming code. (Used in Introduction to Dashboarding)

Metabase

An open-source BI tool that connects to a SQL database and lets you build charts and dashboards through a point-and-click interface, no application code required. (Used in Metabase Setup)

metabase_user

A read-only Postgres role with SELECT-only permission on your dev_<name> schema. Metabase connects with it so a dashboard query can never modify or delete data. (Used in Metabase Setup)

Databases (nav)

The Metabase navigation area for exploring the tables and columns of a connected database, separate from where saved Questions and Dashboards live. (Used in Metabase Setup)

cold start

The ~90-second delay when a scale-to-zero service (the HYF Metabase Container App) receives its first request after being idle and has to spin a container back up. (Used in Metabase Setup)

Question

In Metabase, a single saved query plus a chart type. Questions are the building blocks of Dashboards and are reusable across many of them. (Used in Dashboards in Metabase)

Dashboard

In Metabase, a canvas that arranges one or more Questions on a grid, with optional filters that cascade to connected Questions. Build Questions first, then assemble. (Used in Dashboards in Metabase)

SQL mode

The Metabase editor where you write SQL directly, as opposed to the point-and-click visual builder. (Used in Dashboards in Metabase)

Collection

The Metabase organisational area where saved Questions and Dashboards live, separate from Databases (which is for raw tables). (Used in Dashboards in Metabase)

field filter (template variable)

A {{variable_name}} placeholder in a SQL query that a dashboard filter can connect to. Without it, a date filter has no column to map to and silently does nothing. (Used in Dashboards in Metabase)

public link

A share URL that lets anyone view a Metabase dashboard without an account. They see whatever metabase_user can read, so never use one for personal or confidential data. (Used in Dashboards in Metabase)

Streamlit

A Python library for building data apps. You write a plain script; Streamlit reruns it top to bottom on every interaction and renders the output as a web page. (Used in Streamlit Fundamentals)

rerun model

Streamlit's execution model: the entire script re-executes on every widget change. Simple to write, but every database query and API call runs again unless cached. (Used in Streamlit Fundamentals)

@st.cache_data

A Streamlit decorator that memoises a function's return value for a set time-to-live (TTL), so expensive queries do not re-run on every rerun. (Used in Streamlit Fundamentals)

TTL (time-to-live)

How long a cached value stays valid before the function runs again. Match it to how often the data changes: ~60s for a freshness check, ~3600s for daily marts. (Used in Streamlit Fundamentals)

mart

A modelled, query-ready table produced by dbt in Week 10 (fct_trips, fct_daily_borough_stats). Both dashboards read from the marts. (Used in Introduction to Dashboarding)

KPI (key performance indicator)

A headline number that summarises the data at a glance, such as total trips, average fare, or total revenue. Rendered with st.metric. (Used in Building a Metrics Dashboard)

st.metric

The Streamlit widget that renders a single number with an optional delta (change indicator). Used for every KPI tile and the freshness panel. (Used in Building a Metrics Dashboard)

data freshness

How recently the data was updated. When a mart has no updated_at column, MAX(pickup_datetime) is a reasonable proxy for when the last batch landed. (Used in Building a Metrics Dashboard)

metric definition

A documented, reproducible description of a number. The five fields are Name, Description, Calculation, Data source, and Refresh frequency. (Used in Presenting Metrics)

metric drift

When the SQL that produces a metric changes but its written definition does not, so the number and its documentation silently disagree. Fixed by updating both in the same pull request. (Used in Presenting Metrics)

what / why / action

The three-part structure for presenting a metric in five minutes: what changed, why it matters, and what action it should drive. (Used in Presenting Metrics)


The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

CC BY-NC-SA 4.0 Icons

Built with ❤️ by the HackYourFuture community · Thank you, contributors

Found a mistake or have a suggestion? Let us know in the feedback form.