# Tabs as genres > The same data serves different questions and each deserves its own page. - Canonical: https://patterns.konigi.com/dashboards/tabs-as-genres - Group: Structure - Level: context - Status: published - Updated: September 10, 2026 - Also called: Overview / Content / Audience / Revenue --- ## Problem One dataset, four audiences. The editor wants to know which posts did well, the growth lead wants acquisition, the ad ops lead wants revenue, and the founder wants one number. Serving all four on one page serves none of them. ## Solution A small fixed set of named tabs, each a complete view for one kind of question. Overview, Content, Audience, Revenue. The tab names are the taxonomy, and they are chosen from the reader's questions rather than from the data model. The distinction from ordinary multi-page structure is what the split is along. Multi-page splits by subject or by volume. Tabs-as-genres splits by *kind of question*, which is why the tab names are so often verbs-in-disguise: Content means "what did we publish and how did it do", Audience means "who are they and where from". Naming them after data tables—Events, Sessions, Users—moves the burden of translation back onto the reader and is the most common way this pattern fails. The set has to be small and stable. Four to six tabs is a set a person learns. Nine is a menu, and once it is a menu the tab strip is navigation and should be a sidebar instead. Stability matters because the value is muscle memory: a reader who knows Revenue is third gets there without reading. The Overview tab is a special case and usually the one done worst. It is not a place for the panels that did not fit elsewhere. Its job is to answer the top question and to route people to the right tab, which makes it the only tab whose purpose is partly navigational. Shared state is the same requirement as any page set: time range and filters must carry, or the tabs are four dashboards that happen to share a header. ## Use when One dataset genuinely answers several distinct kinds of question, the audiences differ, and the set of question-kinds is stable enough to name once. ## Don't use when The tabs would be sequential steps rather than parallel questions, or the set keeps growing. A tab strip that gained three entries this year is a navigation problem being deferred. ## Trade-offs Tabs hide everything except the current one, so cross-genre comparison is impossible and the tab nobody opens rots invisibly. The names are load-bearing and hard to change once people have learned them, which means an early naming mistake persists for years. Analytics on tab usage usually reveal that one tab carries most of the traffic, which raises an uncomfortable question about the other three. And tabs imply equal weight, when in practice one is almost always primary. ## Checklist - Are the tabs kinds of question, or names of data tables? - Would the intended reader recognise their question in a tab name? - How many tabs, and is the set stable? - Does the Overview tab route people, or is it a leftovers drawer? - Do time range and filters carry across tabs? - Does the URL identify the tab, so a link opens the right one? - Which tab gets the traffic, and do the others justify their place? - Can a reader tell what is on a tab without opening it? - What is the process for adding a tab, and has it been used recently? - Would a sidebar serve better at this count? ## Compare **Google Analytics** popularised this arrangement for web data and shows both sides of it: the genre names are recognisable to non-experts, and the set has grown across versions until the strip became a tree. **Plausible** deliberately refuses the pattern, keeping everything on one page, which works because it carries far fewer metrics and is a direct statement that tabs are a symptom of scope. **Sentry** uses top-level genres—Issues, Performance, Releases—that are genuinely different questions about the same events, which is the pattern applied correctly at product scale. **Grafana** has no tab primitive within a dashboard, so genre tabs are separate dashboards linked in a row, and keeping them consistent is entirely manual. ## Related Multi-page dashboard is the general form and covers the state-sharing requirements. Semantic grouping is the same instinct applied within one page. Sidebar and canvas is what a tab strip should become once it stops being a set. Single-column narrative is the alternative for an audience small enough to serve with one sequence. Saved view is what readers build when the tabs do not match their actual question. ## Examples ### Tableau Public (Salesforce) Thousands of dashboards made by people who are not designers, published without a review step. The best available sample of what the pattern language looks like in the wild. **User Funnel & Conversion Rates** — captured September 11, 2026, Tableau Public embed view; workbook published by Tetiana Berezhna. analytical, medium density, light theme, desktop-web. Another published workbook rather than anything Tableau designed, and it makes both of the mistakes the funnel entry names. It shows one number per step, not two. The labels down the right read CVR 100%, 74%, 55%, 37%, 23%, 7%, and every one of those is overall conversion—the share of the original 8,460 still present. Step conversion is missing, which matters because the worst step in this funnel is invisible: 1,948 people start a trial and 577 pay, so that step converts at 30%, and nothing on the chart says 30. You have to divide two numbers printed four inches apart. The second is the rendering. It is drawn as a taper, so quantity is encoded as the width of a trapezoid, and the eye compares areas rather than lengths. Plain horizontal bars would have been easier to read and easier to label. The panel on the left has a third problem: a 20% conversion rate sits above a bar of 10 registrations, next to a 26% rate over 3,673, at the same size and in the same grey. Hotspots in this capture: - [Funnel](https://patterns.konigi.com/dashboards/funnel) — Drawn as a taper, so the count is the width of a trapezoid. Length would have read more accurately for nothing. - [Funnel](https://patterns.konigi.com/dashboards/funnel) — Overall conversion only. The trial-to-payment step converts at 30% and no number on the chart says so. - [Ratio and rate](https://patterns.konigi.com/dashboards/ratio-and-rate) — A 20% rate over 10 registrations drawn the same size as a 26% rate over 3,673. - [Header KPI strip](https://patterns.konigi.com/dashboards/header-kpi-strip) — Three counts, boxed and centred, with no delta and no base. The first and last are the funnel's own endpoints. - [Tabs as genres](https://patterns.konigi.com/dashboards/tabs-as-genres) *(this pattern)* — Seven worksheet tabs across the top, named after the data rather than the question—Users : Registration, CVR to Start of Trial. ### Honeycomb Query-first; heatmaps and BubbleUp replace the dashboard-of-panels model with draw-a-region cross-filtering. **Query / HEATMAP(duration_ms)** — captured September 10, 2026, Honeycomb sandbox, public dataset (signed out; no version string exposed). analytical, medium density, light theme, desktop-web. My heatmap entry cites Honeycomb as the argument for log-scale y-buckets, so it's worth recording that this is Honeycomb's own sandbox rendering the same chart on a linear axis. The result is the failure the argument warns about: the ticks run 0 to 3500 evenly, the dense band where almost every request actually lives is squashed into the bottom sixth of the panel, and the top half is mostly empty. What survives anyway is the thing a percentile can't tell you. The solid band under a second doesn't move across the whole window, while from about 07:00 a separate purple tail climbs to 3000ms and keeps going. Two populations, one of them fine and one of them deteriorating. A p95 line over this data would have risen and said nothing about which. The other thing worth stealing: the footer reports elapsed query time and that it examined 11,710,335 rows, so the panel tells you what it cost and how much it looked at. Cookie banner and a no-signup onboarding modal were removed to take the shot; nothing of the product's own UI was. Hotspots in this capture: - [Heatmap](https://patterns.konigi.com/dashboards/heatmap) — Linear y-axis, so the band holding most requests is six percent of the panel height and the empty top half gets the rest. - [Dashboard builder](https://patterns.konigi.com/dashboards/dashboard-builder) — No panel to configure—the query is the page. WHERE trace.parent_id does-not-exist is how you say root spans only. - [Tabs as genres](https://patterns.konigi.com/dashboards/tabs-as-genres) *(this pattern)* — Five readings of one result: overview, BubbleUp, correlations, traces, raw. Each tab is a different question, not a different subject. - [Search across panels](https://patterns.konigi.com/dashboards/search-across-panels) — The schema is the navigation, and it opens with a filter box rather than a tree you're expected to browse. - [Time-range picker](https://patterns.konigi.com/dashboards/time-range-picker) — Absolute, with the granularity stated beside it, and arrows that step to the previous window rather than retyping it. - [Data source badge](https://patterns.konigi.com/dashboards/data-source-badge) — Elapsed query time and 11,710,335 rows examined. The panel reporting its own cost and scope, which almost nothing else does. - [Freshness indicator](https://patterns.konigi.com/dashboards/freshness-indicator) — When data last arrived, not when the page last ran. The one of the three ages that actually matters. ### Plausible Analytics (Plausible Insights) One column, top to bottom, where the metric row doubles as the chart's control. The clearest working argument that a dashboard can have exactly one interaction. **Live demo / plausible.io** — captured September 10, 2026, Plausible live demo, plausible.io's own stats (signed out). public, medium density, light theme, desktop-web. My single-column-narrative entry names Plausible as the reference implementation and says the trick is that the metric row doubles as the chart's control. Here it is doing exactly that: six tiles across the top, the first one boxed because it's selected, and the chart underneath plotting that metric and no other. Click a different tile and the chart follows. The page therefore has one interaction, and it is the same gesture as paying attention. Everything below reads as a single column in argument order—headline, then the shape behind it, then what it decomposes into, then goals. Two things it doesn't do. The ranked lists carry a count and a bar and no share of total, so Direct at 271k against Google at 25.1k tells you the ordering and not whether the top row is most of the traffic. And the choropleth is so pale that outside the United States almost every country is the same near-white, which is the encoding spending a whole panel to say "mostly America". Hotspots in this capture: - [Single-column narrative](https://patterns.konigi.com/dashboards/single-column-narrative) — One column, top to bottom, no panel arrangement and nothing to configure before reading starts. - [Header KPI strip](https://patterns.konigi.com/dashboards/header-kpi-strip) — Six tiles sharing one anatomy, each with a delta. The boxed one is selected, and the chart below plots it. - [Ratio and rate](https://patterns.konigi.com/dashboards/ratio-and-rate) — Bounce rate 43%, with the denominator two tiles away and the window only in the header. - [Overview then detail](https://patterns.konigi.com/dashboards/overview-then-detail) — The decomposition: sources, pages, geography, browsers, goals. Same subject, narrowed, no navigation. - [Ranked list](https://patterns.konigi.com/dashboards/ranked-list) — Sorted with an in-row bar, no share of total and no other row. Direct 271k versus Google 25.1k, out of what? - [Geo map with markers](https://patterns.konigi.com/dashboards/geo-map) — A choropleth pale enough that every country but one reads as the same white. Raw counts, unnormalised. - [Tabs as genres](https://patterns.konigi.com/dashboards/tabs-as-genres) *(this pattern)* — Tabs inside the panel—channels, sources, campaigns—so one card answers three questions in one slot. ## Related patterns - [Multi-page dashboard](https://patterns.konigi.com/dashboards/multi-page-dashboard) — One page can't hold it and the sections have different audiences. - [Semantic grouping](https://patterns.konigi.com/dashboards/semantic-grouping) — Panels belong together by meaning, and the layout should say so. - [Sidebar and canvas](https://patterns.konigi.com/dashboards/sidebar-and-canvas) — Navigation between many dashboards needs to be persistent without stealing the canvas. - [Single-column narrative](https://patterns.konigi.com/dashboards/single-column-narrative) — A non-expert needs one obvious reading order and no configuration. - [Saved view](https://patterns.konigi.com/dashboards/saved-view) — The team re-selects the same five filters every morning. ## Sources - [Bach et al., Dashboard Design Patterns](https://dashboarddesignpatterns.github.io/patterns.html) - [Nielsen Norman Group, Progressive Disclosure](https://www.nngroup.com/articles/progressive-disclosure/) - [Grafana, Manage dashboards](https://grafana.com/docs/grafana/latest/visualizations/dashboards/manage-dashboards/) --- Screenshots on patterns.konigi.com are reproduced for commentary and criticism. Product names and marks belong to their owners.