Dashboard Builder
Shows which metrics are actually comparable.
A Claude Code plugin for marketing and growth data. Before it draws a chart, it checks which metrics can be compared and leaves out combinations that would be misleading.
- 11 dashboard templates
- No real account data in the repo
Source: references/comparability-rules.md §2.1
Each stage runs once on the same data. The dashboard and the deck are two outputs of one analysis, not two separate calculations.
Comparability check
Every number is classified before it's shown.
Numbers fall into four classes.
| Class | Rule |
|---|---|
| Direct | Same counting unit, denominator, attribution window/model, date basis. |
| Normalizable | A pure unit or scale conversion. Nothing else differs. |
| Conditional | Both valid, answering different questions. State each, never rank them. |
| Not comparable | The definitions themselves differ. Refuse, and name the mechanism. |
- What was asked
- rank Meta and LinkedIn by ROAS.
- Why it fails
- LinkedIn's account is on its recommended 90-day click / 90-day view window; Meta's default is 7-day click / 1-day view / 1-day engage. LinkedIn is crediting a 90× longer view window.
- What can still be said
- each platform's ROAS trend against its own prior period is valid.
- To make it comparable
- Re-pull both at 7-day click / 1-day view, or settle it with a geo holdout. Attributed ROAS won't answer this at any window.
Before any number is trusted
Every metric is labeled, every dataset is checked.
Two checks run before analysis starts. How reliable the metric mapping is, and how serious the data quality problem is.
- ExactA known, named field of an identified platform.purchaseRevenue from a confirmed GA4 export.
- InferredVery likely, but rests on a stated assumption.A column called media_cost is almost certainly spend - which cost scope isn't established.
- AmbiguousMultiple definitions fit, nothing settles it. Never picked silently.A bare "revenue" column could be gross, net, purchase-only, or GMV.
- BlockerStops the analysis of the affected slice.Primary key has duplicates, or a declared grain is violated.
- WarningComputed, but labeled with the caveat inline.5-50% nulls in an analysis column, or an unexplained 3σ spike.
- InfoNoted once in the ingestion summary, not repeated.Minor naming variance, rounding differences.
Insight check
A finding passes eight questions before it's shown.
No score, just rules. A finding that fails any of the first three is never shown.
"If a finding fails the first three checks, it is not shown."
| # | Question |
|---|---|
| 01 | Is the change real?If no: Suppressed. A data finding, not a business finding. |
| 02 | Is it statistically supportable?If no: Suppressed. Noise wearing a percentage sign. |
| 03 | Is it material?If no: Low at most, usually suppressed. |
| 05 | Is it economically important?If no: Medium at most. |
| 08 | Is it actionable?If no: Medium or low. Real but not urgent. |
Labels
- CriticalClears 1-3 and 5, actionable, no open alternative explanation.
- HighClears 1-3, actionable, but one open question stated explicitly.
- MediumReal and supported, not yet economically sized or actionable.
- LowReal, small, or a context/guardrail metric.
- SuppressFails question 1, 2 or 3 - not shown as a business observation at all.
Dashboards & Presentations
11 templates. Only the ones your data actually supports.
Two kinds of template: ones for mixed, multi-domain datasets and ones for a single specific data shape. The same analysis renders as a dashboard or a deck.
Executive Summary
Is growth healthy, efficient and profitable?
Growth & Acquisition
Where are we acquiring users and how efficiently?
Lifecycle & CRM
How effectively are we activating, retaining and monetizing existing users?
All-in-One Growth Tower
What is the complete growth system telling us?
E-commerce & Revenue
Are we selling well, and to whom?
SaaS / Subscription
Is the subscription base healthy and growing sustainably?
Mobile App & Store
How is the app performing in the stores, and are people sticking with it?
Web Analytics
How are visitors behaving on the site, independent of what brought them there?
Single-Channel Deep Dive
How is this one channel actually performing, campaign by campaign?
Cross-Source Reconciliation
Why don't these two platforms agree, and which one should I trust for what?
SEO & Organic Search
Is organic search actually bringing people in, and for what?
Template selection passes three filters. Data shape, business question, available evidence. No hand-picked vertical template.
Install
Three ways in, all from the repository's own README.
- 1
Add the plugin to Claude Code
/plugin marketplace add ali-demirbas/dashboard-builder/plugin install dashboard-builder@dashboard-builder - 2
Run the tests
Runs the repository's test suite.
python3 -m unittest discover -s tests -v - 3
Read the repo
FAQ
Frequently asked questions
Does it fix or reconcile numbers that don't match?
No. It explains why they don't match and says what each number is actually valid for. The comparability check classifies the mismatch (attribution window, denominator, counting unit); it doesn't pick a winner or average the two. Reconciliation here means naming the mechanism behind the gap, not producing one blended figure.
How does it decide which of the 11 dashboard templates to offer?
It checks three things in order: what the data structure can support, which business question is being asked, and what the data can answer with a defensible level of confidence. Only templates that pass all three are offered; it does not force a vertical template onto data that cannot support it.
Why does it sometimes surface fewer than 5 observations, or none?
Every candidate finding passes eight checks before it is shown: whether the movement is real, statistically supportable, material, economically meaningful and actionable, among others. Anything that fails one of the first three checks is left out, so the output can stay short when the data does not support more.
Does the repo contain real account or business data?
No. The repo's own maintenance rules don't allow it. Every example and test dataset is either synthetic or a cited public source. Never a real account export.
If this work overlaps with yours, let's talk.
Send me a note about growth, CRM, measurement or one of the projects here. A question, a counterpoint or a simple hello all work.
