Dashboard Expert
OpenAIOfficialCreated by MixpanelDistributed by OpenAI
- Skill
- Tool integration
- Data and AI
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Dashboard Expert provides a comprehensive framework for interacting with Mixpanel dashboards. It supports four primary modes: analyzing existing dashboards to extract insights, building new dashboards from scratch, modifying existing layouts or content, and adding data-driven annotations to provide context. The skill emphasizes a structured workflow, ensuring that data is investigated before building, and that modifications follow strict API ordering requirements to maintain dashboard integrity.
What it does
- Analyzes dashboard structure and executes underlying reports to synthesize findings.
- Builds new dashboards by planning layouts and querying metrics.
- Modifies existing dashboards by adding, reordering, or deleting content.
- Annotates dashboards with data-driven text cards to provide context.
- Validates data availability before creating new reports.
- Ensures correct API operation ordering for dashboard updates.
When to use it
- When you need to understand the performance metrics displayed on a dashboard.
- When creating a new dashboard to track product health or specific user behaviors.
- When updating an existing dashboard to include new metrics or improve layout.
- When you need to add explanatory text to clarify data trends for stakeholders.
Advantages
- Provides a consistent, repeatable process for dashboard management.
- Reduces errors by enforcing correct API operation sequences.
- Enables data-driven insights through automated report execution and summarization.
- Supports complex layout management including row and cell organization.
Usage examples
- “Analyze the Product Health dashboard and summarize the key trends.”
- The agent will read the dashboard structure, execute all contained reports, and provide a summary of metrics, trends, and cross-report correlations.
- “Create a new dashboard for tracking signup conversion.”
- The agent will investigate relevant events, propose a layout, and build a new dashboard with appropriate funnel and insight reports.
- “Add a text card to the top of my dashboard explaining the recent drop in DAU.”
- The agent will analyze the current dashboard, generate an insightful text card based on the data, and insert it into the layout.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/openai/dashboard-expert/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip dashboard-expert.zip -d .agents/skills
Documentation by Mixpanel
Dashboard Expert
Analyze, build, modify, and explain Mixpanel dashboards. Four modes — pick the one matching the user's intent.
Mode Selection
| User intent | Mode | Key actions |
|---|---|---|
| "analyze/understand/read/explore dashboard" | Analyze | Read structure, execute reports, summarize |
| "build/create/make a new dashboard" | Build | Investigate data → plan → create with layout |
| "modify/update/add to/fix/improve dashboard" | Modify | Read current state → plan changes → execute |
| "explain/annotate/add insights to dashboard" | Explain | Analyze → generate data-driven text cards |
Quick Start: Analyze an Existing Dashboard
import json, re
import mixpanel_headless as mp
ws = mp.Workspace()
dash = ws.get_dashboard(DASHBOARD_ID)
layout, contents = dash.layout, dash.contents
# Extract structure: rows → cells → content items
for row_id in layout["order"]:
row = layout["rows"][row_id]
for cell in row["cells"]:
cid, ctype = str(cell["content_id"]), cell["content_type"]
if ctype in ("report", "report-link"):
info = contents["report"][cid]
print(f" [{cell['width']}w] {info['name']} ({info['type']}) {'[linked]' if ctype == 'report-link' else ''}")
elif ctype == "text":
md = contents["text"][cid].get("markdown", "")
is_header = bool(re.search(r'<h2[\s>]', md, re.I))
print(f" [{cell['width']}w] TEXT {'[SECTION]' if is_header else ''}: {md[:60]}...")
# Execute each report → DataFrame
for cid, info in contents.get("report", {}).items():
btype, bid = info["type"], info["id"]
if btype == "flows":
result = ws.query_saved_flows(bid)
else:
result = ws.query_saved_report(bid, bookmark_type=btype)
df = result.df
print(f"{info['name']}: {len(df)} rows, columns={list(df.columns)}")Quick Start: Build a New Dashboard
from mixpanel_headless.types import CreateDashboardParams, DashboardRow, DashboardRowContent
import json
ws = mp.Workspace()
dau = ws.query("Login", math="dau", last=90)
def text(html):
return DashboardRowContent(content_type="text", content_params={"markdown": html})
def report(name, btype, result):
return DashboardRowContent(content_type="report", content_params={
"bookmark": {"name": name, "type": btype, "params": json.dumps(result.params)}})
dashboard = ws.create_dashboard(CreateDashboardParams(
title="Product Health", description="Core metrics.",
rows=[
DashboardRow(contents=[text("<h2>Product Health</h2><p>Core metrics.</p>")]),
DashboardRow(contents=[report("DAU (90d)", "insights", dau)]),
],
))
ws.pin_dashboard(dashboard.id) # Make visible to teamMode: Analyze
Read existing dashboards, execute their reports, and synthesize understanding.
Phase A1: Read Dashboard Structure
dash = ws.get_dashboard(dashboard_id)
layout, contents = dash.layout, dash.contentsParse the response into a structured representation:
layout["order"]— ordered list of row IDslayout["rows"][row_id]["cells"]— cells withcontent_id,content_type,widthcontents["report"][str(content_id)]— report metadata:id(bookmark_id),name,type,params,descriptioncontents["text"][str(content_id)]— text card:markdown
Classify each cell:
content_type == "report"→ owned, editablecontent_type == "report-link"→ linked from another dashboard, read-onlycontent_type == "text"→ text card; detect section headers viare.search(r'<h2[\s>]', md, re.I)
Build a mental model: Group reports by section (text cards with <h2> tags delimit sections). Note each report's chart type, width, and position.
Phase A2: Extract Report Details
For deeper understanding, fetch full bookmark params:
bookmark = ws.get_bookmark(bookmark_id)
params = bookmark.params # Full query definition dictKey fields in params (Insights format):
params["sections"]["show"]— metrics with event names and math typeparams["sections"]["group"]— breakdown propertiesparams["sections"]["filter"]— active filtersparams["sections"]["time"]— date rangeparams["displayOptions"]["chartType"]— visualization type
Note: params in contents["report"][id] may be a JSON string — parse with json.loads() if needed.
Phase A3: Execute and Summarize
Execute each report to get live data:
for cid, info in contents.get("report", {}).items():
bid, btype = info["id"], info["type"]
if btype == "flows":
result = ws.query_saved_flows(bid)
else:
result = ws.query_saved_report(bid, bookmark_type=btype)
df = result.dfSummarize by report type:
| Type | Key metrics to extract |
|---|---|
| insights | Total, average, latest value, min, max, trend direction |
| funnels | Step names, counts, per-step and overall conversion rate |
| retention | Day 1, Day 7, Day 30 rates; stabilization point |
| flows | Top paths, conversion rate, drop-off points |
Cross-correlate across reports: Look for relationships — DAU trends vs. retention, funnel drop-off vs. feature adoption.
Phase A4: Present Analysis
Structure findings as:
Dashboard overview — title, purpose, section count, report count
Section-by-section breakdown — what each section measures, key findings
Cross-metric insights — correlations, anomalies, patterns
Suggestions — missing metrics, better chart types, layout improvements
Multi-Dashboard Analysis
When analyzing multiple dashboards, build a unified picture:
dashboard_ids = [1001, 1002, 1003]
all_data = {}
for did in dashboard_ids:
dash = ws.get_dashboard(did)
for cid, info in dash.contents.get("report", {}).items():
result = ws.query_saved_report(info["id"], bookmark_type=info["type"])
all_data[f"{dash.title}/{info['name']}"] = result.df
# Cross-dashboard: join DataFrames on date index, compute correlationsMode: Build
Create new dashboards from scratch. Five phases.
Phase B1: Investigate
Before building, discover the data. Never build reports for events with zero volume.
ws = mp.Workspace()
top = ws.top_events(limit=15)
for t in top:
print(f"{t.event}: {t.count:,} ({t.percent_change:+.1%})")
# Validate candidate events
for event in candidate_events:
result = ws.query(event, from_date="2025-01-01", to_date="2025-03-31")
print(f"{event}: {result.df['count'].sum():,.0f} total")
# Explore properties for breakdowns
props = ws.properties(event="key_event")
values = ws.property_values(event="key_event", property="platform", limit=20)Phase B2: Plan Structure
Present a proposed structure before building. Choose a template from references/dashboard-templates.md.
A plan includes: title + description, sections with text card headers, reports per section with chart type, grid layout.
Text cards use HTML (not markdown). Every dashboard must have an intro text card and section headers.
Allowed HTML tags: <h1>, <h2>, <h3>, <p>, <strong>, <em>, <u>, <s>, <mark>, <code>, <blockquote>, <hr>, <br>, <ul>, <ol>, <li>, <a href="...">
Forbidden (stripped): <div>, <span>, <b> (use <strong>), <i> (use <em>), <img>, <table>
Critical: Strip \n and collapse whitespace from HTML before sending. Each element renders as its own line.
Text card patterns:
Intro: <h2>Dashboard Title</h2><p>What and why. Time period: last 90 days.</p>
Section: <h2>Acquisition</h2><p>How users discover and sign up.</p>
Explainer: <p>^ Signup conversion is <strong>23.4%</strong>, up 2.1pp.</p>Phase B3: Query and Build
Query each metric, verify data, then create with layout in one call.
def text(html):
return DashboardRowContent(content_type="text", content_params={"markdown": html})
def report(name, btype, result, description=None):
params = {"bookmark": {"name": name, "type": btype, "params": json.dumps(result.params)}}
if description:
params["bookmark"]["description"] = description
return DashboardRowContent(content_type="report", content_params=params)
dashboard = ws.create_dashboard(CreateDashboardParams(
title="Product Health Dashboard",
description="Key metrics for product health monitoring.",
rows=[
DashboardRow(contents=[text("<h2>Product Health</h2><p>Updated daily.</p>")]),
DashboardRow(contents=[
report("DAU (90d)", "insights", dau),
report("Signups (90d)", "insights", signups),
report("Revenue (90d)", "insights", revenue),
]),
DashboardRow(contents=[text("<h2>Conversion</h2><p>Key funnels.</p>")]),
DashboardRow(contents=[report("Signup Funnel", "funnels", funnel)]),
],
))On report failure, substitute a fallback text card:
try:
result = ws.query(event, math="total", last=90)
row_items.append(report(f"{event} Trend", "insights", result))
except Exception as e:
row_items.append(text(f"<p><strong>Failed:</strong> {event} — {e}</p>"))Phase B4: Enhance
Pin for team visibility:
ws.pin_dashboard(dashboard.id)— dashboards are invisible by defaultFavorite for personal use:
ws.favorite_dashboard(dashboard.id)Add explainer cards: see Mode: Explain
Adjust heights: see
references/dashboard-reference.mdSection 3.4
Phase B5: Verify
Open the dashboard and confirm all reports render with data, text cards display correctly, and layout matches the plan.
Mode: Modify
Update existing dashboards. Read first, then apply changes in the correct order.
Phase M1: Read Current State
Use Analyze Phase A1-A2 to understand the dashboard's structure. Present to user before making changes.
Phase M2: Plan Changes
Classify each change and plan execution order. Operations must follow this sequence:
Metadata (title/description) — standalone PATCH
Cell creates — add new content first
Row reorder (
rows_order) — after creates so temp IDs resolveCell updates — modify existing content
Cell deletes — remove content
Row deletes — remove entire rows last
Phase M3: Execute Changes
Adding content to a specific existing row — send content AND layout together:
import copy
dash = ws.get_dashboard(dashboard_id)
layout = copy.deepcopy(dash.layout)
target_row = layout["rows"][target_row_id]
# Redistribute widths
new_count = len(target_row["cells"]) + 1
cell_width = 12 // new_count
for cell in target_row["cells"]:
cell["width"] = cell_width
target_row["cells"].append({"temp_id": "-1", "width": cell_width})
ws.update_dashboard(dashboard_id, UpdateDashboardParams(
content={"action": "create", "content_type": "report",
"content_params": {"bookmark": {"name": "New Report", "type": "insights",
"params": json.dumps(result.params)}}},
layout={"rows_order": layout["order"], "rows": layout["rows"]},
))Adding content as a new row — content action alone (appends to bottom):
ws.update_dashboard(dashboard_id, UpdateDashboardParams(
content={"action": "create", "content_type": "text",
"content_params": {"markdown": "<p>^ Explainer card.</p>"}},
))Deleting content:
ws.update_dashboard(dashboard_id, UpdateDashboardParams(
content={"action": "delete", "content_type": "report", "content_id": content_id},
))Cross-type updates (e.g., text → report): API rejects changing content_type on update. Delete the old cell, then create the new one.
See references/dashboard-reference.md Section 8 for temp ID resolution, operation ordering details, and report-link semantics.
Mode: Explain
Combine analysis with targeted text card insertion.
Analyze — run Mode: Analyze to extract structure and execute reports
Generate insights — for each report, compute key metrics from the DataFrame:
latest = df.iloc[-1]["count"] prev = df.iloc[-8]["count"] trend = ((latest - prev) / prev) * 100 html = (f"<p>^ DAU is <strong>{latest:,.0f}</strong>, " f"{'up' if trend > 0 else 'down'} <strong>{abs(trend):.1f}%</strong> " f"vs. last week.</p>").replace("\n", "")Insert cards — add as new rows below each report section:
ws.update_dashboard(dashboard_id, UpdateDashboardParams( content={"action": "create", "content_type": "text", "content_params": {"markdown": html}}, ))
Critical Gotchas
Combined content+layout PATCH — send both
contentandlayoutin the sameUpdateDashboardParamsto add cells to specific existing rows. Withoutlayout, new content appends as a full-width row at the bottom.Width auto-redistribution — when adding to an existing row with N cells, set all cells (including new) to
12 // (N+1)width.Update operation ordering — metadata → cell creates → rows_order → cell updates → cell deletes → row deletes. Wrong order causes failures.
per_userrequiresmath_property— using per-user aggregation without a numeric property raisesBookmarkValidationError.CreateBookmarkParams(dashboard_id=X)does NOT add to layout — useadd_report_to_dashboard()or inline content action.add_report_to_dashboard()CLONES — creates "Duplicate of..." copy. UserowsinCreateDashboardParamsor inline content action instead.GET
ordervs PATCHrows_order— layout from GET usesorder; PATCH expectsrows_order.Never include
versionin layout PATCH — the API rejects it.Strip
\nand collapse whitespace — call.replace("\n", "").strip()on text card HTML. Newlines cause TipTap to mangle content.Limits — title 255 chars, description 400 chars, text cards 2,000 chars, max 4 items/row, max 30 rows.
Cross-type cell updates require delete+create — API rejects changing
content_typeon an update action.Report-link cells are read-only —
content_type: "report-link"references a report owned by another dashboard. You can view but not edit its params.Auto-pin after creation — dashboards are invisible to the team by default. Call
ws.pin_dashboard(dashboard.id).The
markdownfield accepts only HTML — despite the name. Markdown syntax renders as literal text.
See Also
references/dashboard-reference.md— Complete API reference, layout system, content actions, text card formatting, update operations, analysis patternsreferences/dashboard-templates.md— 9 purpose-built dashboard templates with section layouts and report specsreferences/bookmark-pipeline.md— End-to-end pipeline from typed query to dashboard report for all 4 enginesreferences/chart-types.md— Chart type selection guide with slugs, use cases, and width recommendations
Files
- ATTRIBUTION.mdAdded by AutoGineer937 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md15.4 KiB
- references/bookmark-pipeline.md9.0 KiB
- references/chart-types.md7.3 KiB
- references/dashboard-reference.md37.1 KiB
- references/dashboard-templates.md35.1 KiB
references/dashboard-templates.md
Dashboard Design Templates
9 purpose-built dashboard templates for common analytics use cases. Each template specifies a complete row-by-row layout, text card content, chart types, and placeholder events that an agent adapts to the user's actual schema.
How to Use These Templates
Adaptation Workflow
Pick a template that matches the user's goal (or combine sections from multiple templates).
Discover the schema -- run
ws.events()andws.properties(event=...)to find real event names.Map placeholders to real events -- replace
{signup_event},{login_event}, etc. with actual event names from the project. Drop any section whose placeholder events have zero volume.Validate data -- query each event before building a report. Skip reports that would render as empty charts.
Adapt row count -- remove sections that don't apply, or add sections for project-specific needs. Stay within the 30-row dashboard limit.
Build -- follow the Build mode workflow in
SKILL.md, using the template layout as the Phase B2 plan.
Layout Conventions
| Symbol | Meaning |
|---|---|
w=N | Cell width (columns out of 12). Widths in a row must sum to 12. |
h=N | Row height in pixels. h=0 means auto-height (text-only rows). |
insights-metric | Big-number KPI card (single value with comparison). |
line | Time-series line chart. |
bar | Categorical bar chart. |
table | Data table with sortable columns. |
line + plotStyle: stacked | Stacked area/line chart for composition over time. |
funnel-steps | Funnel visualization showing step-by-step conversion. |
retention-curve | Retention curve or cohort grid. |
sankey | Sankey/flow diagram showing user paths. |
Placeholder Event Conventions
Templates use curly-brace placeholders for event names. The agent replaces these with real events discovered from the project schema.
| Placeholder | Typical Matches |
|---|---|
{signup_event} | Sign Up, Create Account, Registration Complete |
{login_event} | Login, Sign In, Session Start |
{core_action_event} | The primary value-delivery action (e.g., Send Message, Create Post, Place Order) |
{purchase_event} | Purchase, Order Completed, Subscription Started |
{feature_event} | The specific feature being tracked (agent fills in) |
{error_event} | Error, Exception, Crash, API Error |
{page_view_event} | Page Viewed, Screen View, $mp_web_page_view |
{referral_event} | Invite Sent, Referral Created, Share |
{onboarding_step_N} | Sequential onboarding steps (agent discovers from schema) |
Template 1: KPI Dashboard
Description: Executive overview of key business metrics with trend lines and core funnels.
Use case: Weekly standups, board meetings, investor updates, team-wide visibility into product health.
Audience: Leadership, founders, board members, cross-functional stakeholders.
Placeholder events: {signup_event}, {login_event}, {core_action_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: DAU | w=3 | h=336 | insights-metric |
| 2 | KPI: WAU | w=3 | h=336 | insights-metric |
| 2 | KPI: MAU | w=3 | h=336 | insights-metric |
| 2 | KPI: New Signups | w=3 | h=336 | insights-metric |
| 3 | Section header: Growth Trends | w=12 | h=0 | text |
| 4 | DAU trend (90d) | w=6 | h=418 | line |
| 4 | New signups trend (90d) | w=6 | h=418 | line |
| 5 | Section header: Conversion | w=12 | h=0 | text |
| 6 | Signup-to-activation funnel | w=12 | h=588 | funnel-steps |
| 7 | Section header: Retention | w=12 | h=0 | text |
| 8 | New user retention curve | w=12 | h=500 | retention-curve |
| 9 | Section header: Engagement | w=12 | h=0 | text |
| 10 | Sessions per user (bar) | w=6 | h=418 | bar |
| 10 | Top events by volume (table) | w=6 | h=418 | table |
Text Card Content
Row 1 -- Intro:
<h2>Key Performance Indicators</h2><p>Headline metrics for {product_name}. All reports use a rolling 90-day window unless noted.</p>Row 3 -- Growth Trends:
<h2>Growth Trends</h2><p>User acquisition and daily engagement over time.</p>Row 5 -- Conversion:
<h2>Conversion</h2><p>How effectively new visitors become activated users.</p>Row 7 -- Retention:
<h2>Retention</h2><p>How well the product brings users back after their first visit.</p>Row 9 -- Engagement:
<h2>Engagement</h2><p>Depth of product usage across active users.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| DAU | {login_event} | dau | -- | Compare to previous period |
| WAU | {login_event} | wau | -- | Compare to previous period |
| MAU | {login_event} | mau | -- | Compare to previous period |
| New Signups | {signup_event} | total | -- | Compare to previous period |
| DAU trend | {login_event} | dau | -- | Line chart, 90 days |
| Signups trend | {signup_event} | total | -- | Line chart, 90 days |
| Signup funnel | {signup_event} > {login_event} > {core_action_event} | -- | -- | 3-step funnel |
| Retention curve | Born: {signup_event}, Return: {login_event} | -- | -- | 12-week retention |
| Sessions/user | {login_event} | avg_count_per_user | -- | Bar chart by week |
| Top events | Top 10 events | total | -- | Table, sorted by volume |
Template 2: Feature Launch Dashboard
Description: Track adoption, engagement, and retention impact of a newly launched feature.
Use case: Post-launch monitoring during the first 30-90 days of a feature release.
Audience: Product managers, engineering leads, designers who built the feature.
Placeholder events: {feature_event}, {login_event}, {core_action_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: Adoption Rate | w=4 | h=336 | insights-metric |
| 2 | KPI: Feature DAU | w=4 | h=336 | insights-metric |
| 2 | KPI: Avg Uses per User | w=4 | h=336 | insights-metric |
| 3 | Section header: Adoption Trend | w=12 | h=0 | text |
| 4 | Feature adoption over time | w=12 | h=500 | line |
| 5 | Section header: Discovery and Activation | w=12 | h=0 | text |
| 6 | Discovery-to-use funnel | w=6 | h=418 | funnel-steps |
| 6 | Time to first use (bar) | w=6 | h=418 | bar |
| 7 | Section header: Engagement Depth | w=12 | h=0 | text |
| 8 | Feature frequency distribution | w=6 | h=418 | bar |
| 8 | Feature usage by segment | w=6 | h=418 | bar |
| 9 | Section header: Retention Impact | w=12 | h=0 | text |
| 10 | Feature-user retention | w=6 | h=418 | retention-curve |
| 10 | Non-feature-user retention | w=6 | h=418 | retention-curve |
| 11 | Section header: User Flows | w=12 | h=0 | text |
| 12 | Post-feature user flow | w=12 | h=588 | sankey |
Text Card Content
Row 1 -- Intro:
<h2>Feature Launch: {feature_name}</h2><p>Tracking adoption, engagement, and retention impact since {launch_date}.</p>Row 3 -- Adoption Trend:
<h2>Adoption Trend</h2><p>Cumulative and daily adoption since launch.</p>Row 5 -- Discovery and Activation:
<h2>Discovery and Activation</h2><p>How users find and first engage with the feature.</p>Row 7 -- Engagement Depth:
<h2>Engagement Depth</h2><p>How often and how deeply users engage with the feature.</p>Row 9 -- Retention Impact:
<h2>Retention Impact</h2><p>Comparing retention between feature adopters and non-adopters.</p>Row 11 -- User Flows:
<h2>User Flows</h2><p>What users do immediately after using the feature.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| Adoption Rate | {feature_event} / {login_event} | dau ratio | -- | Percentage of DAU using feature |
| Feature DAU | {feature_event} | dau | -- | Compare to previous period |
| Avg Uses/User | {feature_event} | avg_count_per_user | -- | Compare to previous period |
| Adoption over time | {feature_event} | dau | -- | Line chart since launch |
| Discovery funnel | {page_view_event} > {feature_event} | -- | -- | 2-step funnel |
| Time to first use | {feature_event} | total | Time since signup bucket | Bar chart |
| Frequency dist. | {feature_event} | total | Uses per user bucket | Bar chart |
| Usage by segment | {feature_event} | total | Platform or user tier | Bar chart |
| Feature-user retention | Born: {feature_event}, Return: {login_event} | -- | -- | 8-week retention |
| Non-feature retention | Born: {login_event} (excl. feature), Return: {login_event} | -- | -- | 8-week retention |
| Post-feature flow | Start: {feature_event} | -- | -- | Sankey, top 5 next events |
Template 3: AARRR / Pirate Metrics Dashboard
Description: Full-funnel product health tracking across the five AARRR stages: Acquisition, Activation, Retention, Revenue, and Referral.
Use case: Comprehensive growth health check; identifying which funnel stage needs the most attention.
Audience: Growth teams, product leadership, startup founders.
Placeholder events: {signup_event}, {login_event}, {core_action_event}, {purchase_event}, {referral_event}, {onboarding_step_1}, {onboarding_step_2}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | Section header: Acquisition | w=12 | h=0 | text |
| 3 | KPI: New Users (total) | w=4 | h=336 | insights-metric |
| 3 | KPI: Signup Rate | w=4 | h=336 | insights-metric |
| 3 | KPI: Top Channel | w=4 | h=336 | insights-metric |
| 4 | New signups trend | w=6 | h=418 | line |
| 4 | Signups by channel | w=6 | h=418 | bar |
| 5 | Section header: Activation | w=12 | h=0 | text |
| 6 | KPI: Activation Rate | w=4 | h=336 | insights-metric |
| 6 | KPI: Time to Activate | w=4 | h=336 | insights-metric |
| 6 | KPI: Onboarding Completion | w=4 | h=336 | insights-metric |
| 7 | Activation funnel | w=12 | h=588 | funnel-steps |
| 8 | Section header: Retention | w=12 | h=0 | text |
| 9 | KPI: D1 Retention | w=4 | h=336 | insights-metric |
| 9 | KPI: D7 Retention | w=4 | h=336 | insights-metric |
| 9 | KPI: D30 Retention | w=4 | h=336 | insights-metric |
| 10 | Retention curve | w=12 | h=500 | retention-curve |
| 11 | Section header: Revenue | w=12 | h=0 | text |
| 12 | KPI: Revenue (total) | w=4 | h=336 | insights-metric |
| 12 | KPI: ARPU | w=4 | h=336 | insights-metric |
| 12 | KPI: Paid Conversion | w=4 | h=336 | insights-metric |
| 13 | ARPU trend | w=6 | h=418 | line |
| 13 | Conversion to paid funnel | w=6 | h=418 | funnel-steps |
| 14 | Section header: Referral | w=12 | h=0 | text |
| 15 | KPI: Referral Rate | w=4 | h=336 | insights-metric |
| 15 | KPI: Viral Coefficient | w=4 | h=336 | insights-metric |
| 15 | KPI: Referred Signups | w=4 | h=336 | insights-metric |
| 16 | Referral trend | w=6 | h=418 | line |
| 16 | Referral funnel | w=6 | h=418 | funnel-steps |
Text Card Content
Row 1 -- Intro:
<h2>AARRR Pirate Metrics</h2><p>Full-funnel health across Acquisition, Activation, Retention, Revenue, and Referral.</p>Row 2 -- Acquisition:
<h2>Acquisition</h2><p>How effectively the product attracts new users.</p>Row 5 -- Activation:
<h2>Activation</h2><p>How quickly new users reach their first moment of value.</p>Row 8 -- Retention:
<h2>Retention</h2><p>How well the product brings users back after signup.</p>Row 11 -- Revenue:
<h2>Revenue</h2><p>Monetization health and conversion to paid.</p>Row 14 -- Referral:
<h2>Referral</h2><p>Organic growth through user-driven sharing and invites.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| New Users | {signup_event} | total | -- | Compare to previous period |
| Signup Rate | {signup_event} / {page_view_event} | ratio | -- | Visitor-to-signup conversion |
| Top Channel | {signup_event} | total | UTM source | Show top value |
| Signups trend | {signup_event} | total | -- | Line chart, 90 days |
| Signups by channel | {signup_event} | total | UTM source | Bar chart, top 5 |
| Activation Rate | {core_action_event} / {signup_event} | ratio | -- | Within first 7 days |
| Time to Activate | {core_action_event} | median_time | -- | Median time from signup |
| Onboarding Completion | {onboarding_step_2} / {onboarding_step_1} | ratio | -- | Completion rate |
| Activation funnel | {signup_event} > {onboarding_step_1} > {core_action_event} | -- | -- | 3-step funnel |
| D1 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 1 value |
| D7 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 7 value |
| D30 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 30 value |
| Retention curve | Born: {signup_event}, Return: {login_event} | -- | -- | 12-week curve |
| Revenue | {purchase_event} | sum of revenue property | -- | Compare to previous period |
| ARPU | {purchase_event} | avg of revenue property | -- | Per-user average |
| Paid Conversion | {purchase_event} / {signup_event} | ratio | -- | Overall conversion |
| ARPU trend | {purchase_event} | avg of revenue property | -- | Line chart, 90 days |
| Paid funnel | {signup_event} > {core_action_event} > {purchase_event} | -- | -- | 3-step funnel |
| Referral Rate | {referral_event} / {login_event} | ratio | -- | % of users who refer |
| Viral Coefficient | {referral_event} | avg_count_per_user | -- | Invites per user |
| Referred Signups | {signup_event} | total | Referral source | Filter to referred |
| Referral trend | {referral_event} | total | -- | Line chart, 90 days |
| Referral funnel | {referral_event} > {signup_event} (referred) | -- | -- | 2-step funnel |
Template 4: Conversion Funnel Dashboard
Description: Deep dive into a specific conversion funnel with step-by-step drop-off analysis, segment comparisons, and trend tracking.
Use case: Optimizing a critical multi-step conversion flow (signup, checkout, onboarding).
Audience: Growth, marketing, product managers focused on conversion optimization.
Placeholder events: {funnel_step_1}, {funnel_step_2}, {funnel_step_3}, {funnel_step_4}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: Overall Conversion | w=4 | h=336 | insights-metric |
| 2 | KPI: Median Time to Convert | w=4 | h=336 | insights-metric |
| 2 | KPI: Daily Conversions | w=4 | h=336 | insights-metric |
| 3 | Section header: Full Funnel | w=12 | h=0 | text |
| 4 | Complete funnel visualization | w=12 | h=588 | funnel-steps |
| 5 | Section header: Step-by-Step Drop-off | w=12 | h=0 | text |
| 6 | Step 1 > 2 conversion | w=4 | h=336 | insights-metric |
| 6 | Step 2 > 3 conversion | w=4 | h=336 | insights-metric |
| 6 | Step 3 > 4 conversion | w=4 | h=336 | insights-metric |
| 7 | Section header: Segment Comparison | w=12 | h=0 | text |
| 8 | Funnel by platform | w=6 | h=418 | bar |
| 8 | Funnel by source | w=6 | h=418 | bar |
| 9 | Section header: Funnel Trend | w=12 | h=0 | text |
| 10 | Conversion rate over time | w=12 | h=500 | line |
| 11 | Section header: Drop-off Analysis | w=12 | h=0 | text |
| 12 | Post-drop-off user flow | w=12 | h=588 | sankey |
Text Card Content
Row 1 -- Intro:
<h2>{funnel_name} Funnel Analysis</h2><p>Deep dive into conversion performance across {step_count} steps. Identify where users drop off and which segments convert best.</p>Row 3 -- Full Funnel:
<h2>Full Funnel</h2><p>End-to-end conversion from {funnel_step_1} to {funnel_step_4}.</p>Row 5 -- Step-by-Step Drop-off:
<h2>Step-by-Step Drop-off</h2><p>Conversion rate between each consecutive pair of steps.</p>Row 7 -- Segment Comparison:
<h2>Segment Comparison</h2><p>How conversion varies across user segments.</p>Row 9 -- Funnel Trend:
<h2>Funnel Trend</h2><p>Overall conversion rate tracked over time to spot regressions.</p>Row 11 -- Drop-off Analysis:
<h2>Drop-off Analysis</h2><p>Where non-converters go after abandoning the funnel.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| Overall Conversion | {funnel_step_1} > ... > {funnel_step_4} | overall rate | -- | Compare to previous period |
| Median Time | {funnel_step_1} > {funnel_step_4} | median_time | -- | Time to complete funnel |
| Daily Conversions | {funnel_step_4} | total | -- | Completed conversions/day |
| Full funnel | {funnel_step_1} > {funnel_step_2} > {funnel_step_3} > {funnel_step_4} | -- | -- | Full funnel chart |
| Step 1>2 rate | {funnel_step_1} > {funnel_step_2} | step rate | -- | Pairwise conversion |
| Step 2>3 rate | {funnel_step_2} > {funnel_step_3} | step rate | -- | Pairwise conversion |
| Step 3>4 rate | {funnel_step_3} > {funnel_step_4} | step rate | -- | Pairwise conversion |
| By platform | {funnel_step_1} > ... > {funnel_step_4} | overall rate | Platform | Bar chart |
| By source | {funnel_step_1} > ... > {funnel_step_4} | overall rate | UTM source | Bar chart |
| Rate over time | {funnel_step_1} > ... > {funnel_step_4} | overall rate | -- | Line chart, 90 days |
| Drop-off flow | Start: users who did {funnel_step_1} but not {funnel_step_4} | -- | -- | Sankey of next actions |
Template 5: Retention Dashboard
Description: Comprehensive analysis of user retention patterns with cohort breakdowns and engagement correlations.
Use case: Understanding why users churn and what behaviors predict long-term retention.
Audience: Product, growth, customer success teams.
Placeholder events: {signup_event}, {login_event}, {core_action_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: D1 Retention | w=4 | h=336 | insights-metric |
| 2 | KPI: D7 Retention | w=4 | h=336 | insights-metric |
| 2 | KPI: D30 Retention | w=4 | h=336 | insights-metric |
| 3 | Section header: Retention Curve | w=12 | h=0 | text |
| 4 | Overall retention curve | w=12 | h=500 | retention-curve |
| 5 | Section header: Cohort Analysis | w=12 | h=0 | text |
| 6 | Retention by signup cohort (table) | w=12 | h=588 | table |
| 7 | Section header: Segment Comparison | w=12 | h=0 | text |
| 8 | Retention by platform | w=6 | h=418 | retention-curve |
| 8 | Retention by acquisition source | w=6 | h=418 | retention-curve |
| 9 | Section header: Return Drivers | w=12 | h=0 | text |
| 10 | Top return events | w=12 | h=500 | bar |
| 11 | Section header: Engagement Correlation | w=12 | h=0 | text |
| 12 | First-week actions vs D30 retention | w=6 | h=418 | bar |
| 12 | Feature usage vs D30 retention | w=6 | h=418 | bar |
Text Card Content
Row 1 -- Intro:
<h2>Retention Analysis</h2><p>Understanding user retention patterns, cohort performance, and engagement behaviors that predict long-term retention.</p>Row 3 -- Retention Curve:
<h2>Retention Curve</h2><p>Percentage of users returning on each day after signup.</p>Row 5 -- Cohort Analysis:
<h2>Cohort Analysis</h2><p>Weekly signup cohorts showing how retention evolves over time.</p>Row 7 -- Segment Comparison:
<h2>Segment Comparison</h2><p>Retention differences across key user segments.</p>Row 9 -- Return Drivers:
<h2>Return Drivers</h2><p>Which events most commonly bring users back to the product.</p>Row 11 -- Engagement Correlation:
<h2>Engagement Correlation</h2><p>Behaviors in the first week that predict long-term retention.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| D1 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 1 value, compare to previous |
| D7 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 7 value, compare to previous |
| D30 Retention | Born: {signup_event}, Return: {login_event} | -- | -- | Day 30 value, compare to previous |
| Overall curve | Born: {signup_event}, Return: {login_event} | -- | -- | 12-week retention curve |
| Cohort table | Born: {signup_event}, Return: {login_event} | -- | Signup week | Cohort grid table |
| By platform | Born: {signup_event}, Return: {login_event} | -- | Platform | Side-by-side curves |
| By source | Born: {signup_event}, Return: {login_event} | -- | UTM source | Side-by-side curves |
| Top return events | All events | total | Event name | Bar chart, users who returned D7+ |
| First-week actions | {core_action_event} count in week 1 | -- | Action count bucket | Bar showing D30 rate per bucket |
| Feature vs retention | {feature_event} usage in week 1 | -- | Used/not used | Bar showing D30 rate per group |
Template 6: User Engagement Dashboard
Description: Measure the depth and breadth of product usage across daily patterns, feature adoption, and session analysis.
Use case: Understanding how deeply users engage, identifying power-user behaviors, and finding underused features.
Audience: Product managers, designers, user researchers.
Placeholder events: {login_event}, {core_action_event}, {feature_event}, {page_view_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: DAU | w=3 | h=336 | insights-metric |
| 2 | KPI: Sessions per User | w=3 | h=336 | insights-metric |
| 2 | KPI: Avg Session Length | w=3 | h=336 | insights-metric |
| 2 | KPI: Feature Breadth | w=3 | h=336 | insights-metric |
| 3 | Section header: Usage Patterns | w=12 | h=0 | text |
| 4 | DAU by day of week | w=6 | h=418 | bar |
| 4 | DAU by hour of day | w=6 | h=418 | bar |
| 5 | Section header: Feature Usage | w=12 | h=0 | text |
| 6 | Feature usage ranking (table) | w=12 | h=588 | table |
| 7 | Section header: User Segments | w=12 | h=0 | text |
| 8 | Power users vs casual (actions/user) | w=6 | h=418 | bar |
| 8 | User engagement tiers | w=6 | h=418 | bar |
| 9 | Section header: Session Analysis | w=12 | h=0 | text |
| 10 | Session duration trend | w=12 | h=500 | line |
| 11 | Section header: User Flows | w=12 | h=0 | text |
| 12 | Top user paths | w=12 | h=588 | sankey |
Text Card Content
Row 1 -- Intro:
<h2>User Engagement</h2><p>Depth and breadth of product usage. Identifying power-user behaviors and underused features.</p>Row 3 -- Usage Patterns:
<h2>Usage Patterns</h2><p>When users are most active during the week and day.</p>Row 5 -- Feature Usage:
<h2>Feature Usage</h2><p>Which features are most and least used across the product.</p>Row 7 -- User Segments:
<h2>User Segments</h2><p>Engagement distribution across user tiers.</p>Row 9 -- Session Analysis:
<h2>Session Analysis</h2><p>How session depth changes over time.</p>Row 11 -- User Flows:
<h2>User Flows</h2><p>Most common paths users take through the product.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| DAU | {login_event} | dau | -- | Compare to previous period |
| Sessions/User | {login_event} | avg_count_per_user | -- | Compare to previous period |
| Avg Session Length | {page_view_event} | avg of session duration | -- | In minutes |
| Feature Breadth | Distinct events per user | unique | -- | Avg distinct features used |
| By day of week | {login_event} | dau | Day of week | Bar chart |
| By hour of day | {login_event} | total | Hour of day | Bar chart |
| Feature ranking | Top 20 events | total + dau | Event name | Table, sorted by volume |
| Power vs casual | {core_action_event} | total | Actions per user bucket | Bar chart |
| Engagement tiers | {login_event} | total | Sessions per user bucket | Bar chart |
| Session duration | {page_view_event} | median of session duration | -- | Line chart, 90 days |
| User paths | Start: {login_event} | -- | -- | Sankey, top 5 paths |
Template 7: Marketing Performance Dashboard
Description: Track acquisition channel effectiveness with channel-level trends, funnel comparisons, and retention by source.
Use case: Evaluating marketing spend, channel ROI, and campaign performance.
Audience: Marketing, growth, paid acquisition teams.
Placeholder events: {signup_event}, {login_event}, {core_action_event}, {purchase_event}, {page_view_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: Total Signups | w=3 | h=336 | insights-metric |
| 2 | KPI: Signup Rate | w=3 | h=336 | insights-metric |
| 2 | KPI: Best Channel | w=3 | h=336 | insights-metric |
| 2 | KPI: Avg Conversion Rate | w=3 | h=336 | insights-metric |
| 3 | Section header: Channel Trends | w=12 | h=0 | text |
| 4 | Signups by channel over time | w=12 | h=500 | line (plotStyle: stacked) |
| 5 | Section header: Channel Quality | w=12 | h=0 | text |
| 6 | Channel conversion funnel | w=12 | h=588 | funnel-steps |
| 7 | Section header: Channel Retention | w=12 | h=0 | text |
| 8 | Retention by acquisition source | w=12 | h=500 | retention-curve |
| 9 | Section header: Campaign Performance | w=12 | h=0 | text |
| 10 | Campaign performance table | w=12 | h=588 | table |
| 11 | Section header: Attribution | w=12 | h=0 | text |
| 12 | First-touch attribution | w=6 | h=418 | bar |
| 12 | Last-touch attribution | w=6 | h=418 | bar |
Text Card Content
Row 1 -- Intro:
<h2>Marketing Performance</h2><p>Acquisition channel effectiveness, campaign ROI, and channel-level quality metrics.</p>Row 3 -- Channel Trends:
<h2>Channel Trends</h2><p>Volume of signups by acquisition channel over time.</p>Row 5 -- Channel Quality:
<h2>Channel Quality</h2><p>Funnel conversion rates compared across channels.</p>Row 7 -- Channel Retention:
<h2>Channel Retention</h2><p>Which channels produce the most retained users.</p>Row 9 -- Campaign Performance:
<h2>Campaign Performance</h2><p>Individual campaign metrics ranked by volume and conversion.</p>Row 11 -- Attribution:
<h2>Attribution</h2><p>First-touch vs last-touch attribution of conversions by source.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| Total Signups | {signup_event} | total | -- | Compare to previous period |
| Signup Rate | {signup_event} / {page_view_event} | ratio | -- | Visitor-to-signup |
| Best Channel | {signup_event} | total | UTM source | Show top value |
| Avg Conversion | {signup_event} > {core_action_event} | overall rate | -- | Compare to previous period |
| By channel over time | {signup_event} | total | UTM source | Stacked line, 90 days |
| Channel funnel | {signup_event} > {core_action_event} > {purchase_event} | -- | UTM source | Funnel segmented by channel |
| Retention by source | Born: {signup_event}, Return: {login_event} | -- | UTM source | 8-week curves by channel |
| Campaign table | {signup_event} | total, dau | UTM campaign | Table sorted by volume |
| First-touch attr. | {purchase_event} | total | First-touch UTM source | Bar chart |
| Last-touch attr. | {purchase_event} | total | Last-touch UTM source | Bar chart |
Template 8: Experiment Results Dashboard
Description: Present A/B test results with primary and secondary metric comparisons, segment breakdowns, and funnel/retention impact.
Use case: Reviewing experiment outcomes, making ship/kill decisions, presenting results to stakeholders.
Audience: Product managers, engineering leads, data scientists.
Placeholder events: {primary_metric_event}, {secondary_metric_event}, {login_event}, {signup_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: Primary Metric Lift | w=4 | h=336 | insights-metric |
| 2 | KPI: Statistical Significance | w=4 | h=336 | insights-metric |
| 2 | KPI: Sample Size | w=4 | h=336 | insights-metric |
| 3 | Section header: Primary Metric | w=12 | h=0 | text |
| 4 | Primary metric: control vs variant | w=12 | h=500 | line |
| 5 | Section header: Secondary Metrics | w=12 | h=0 | text |
| 6 | Secondary metric A by group | w=6 | h=418 | bar |
| 6 | Secondary metric B by group | w=6 | h=418 | bar |
| 7 | Section header: Segment Breakdown | w=12 | h=0 | text |
| 8 | Results by segment (table) | w=12 | h=588 | table |
| 9 | Section header: Funnel Impact | w=12 | h=0 | text |
| 10 | Funnel by experiment group | w=12 | h=588 | funnel-steps |
| 11 | Section header: Retention Impact | w=12 | h=0 | text |
| 12 | Retention: control group | w=6 | h=418 | retention-curve |
| 12 | Retention: variant group | w=6 | h=418 | retention-curve |
Text Card Content
Row 1 -- Intro:
<h2>Experiment: {experiment_name}</h2><p><strong>Hypothesis:</strong> {hypothesis}. Running from {start_date} to {end_date}. Groups: Control ({control_pct}%) vs {variant_name} ({variant_pct}%).</p>Row 3 -- Primary Metric:
<h2>Primary Metric</h2><p>Tracking {primary_metric_name} across experiment groups over time.</p>Row 5 -- Secondary Metrics:
<h2>Secondary Metrics</h2><p>Guardrail and secondary metrics to watch for unexpected side effects.</p>Row 7 -- Segment Breakdown:
<h2>Segment Breakdown</h2><p>Experiment results sliced by platform, plan, and geography.</p>Row 9 -- Funnel Impact:
<h2>Funnel Impact</h2><p>How the experiment affects the core conversion funnel.</p>Row 11 -- Retention Impact:
<h2>Retention Impact</h2><p>Whether the variant changes user return behavior over the first 4 weeks.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| Primary Lift | {primary_metric_event} | relative lift | Experiment group | % change vs control |
| Significance | {primary_metric_event} | p-value | Experiment group | Statistical confidence |
| Sample Size | {primary_metric_event} | total_users | Experiment group | Total enrolled users |
| Control vs variant | {primary_metric_event} | total or dau | Experiment group | Line chart over time |
| Secondary A | {secondary_metric_event} | total | Experiment group | Bar chart |
| Secondary B | {login_event} sessions | avg_count_per_user | Experiment group | Bar chart |
| By segment table | {primary_metric_event} | lift + significance | Experiment group x segment | Table with per-segment results |
| Funnel by group | {signup_event} > {primary_metric_event} | -- | Experiment group | Funnel segmented by group |
| Control retention | Born: {signup_event} (control), Return: {login_event} | -- | -- | 4-week curve |
| Variant retention | Born: {signup_event} (variant), Return: {login_event} | -- | -- | 4-week curve |
Template 9: Operational Health Dashboard
Description: Monitor product reliability and performance with error rates, success metrics, user impact analysis, and recovery tracking.
Use case: Incident response, reliability monitoring, SLO tracking, post-incident reviews.
Audience: Engineering, SRE, product ops, on-call teams.
Placeholder events: {error_event}, {login_event}, {core_action_event}, {page_view_event}
Layout
| Row | Content | Width | Height | Chart Type |
|---|---|---|---|---|
| 1 | Intro text card | w=12 | h=0 | text |
| 2 | KPI: Error Rate | w=3 | h=336 | insights-metric |
| 2 | KPI: P95 Latency | w=3 | h=336 | insights-metric |
| 2 | KPI: Success Rate | w=3 | h=336 | insights-metric |
| 2 | KPI: Active Users | w=3 | h=336 | insights-metric |
| 3 | Section header: Reliability Trends | w=12 | h=0 | text |
| 4 | Error rate trend | w=6 | h=418 | line |
| 4 | Success rate trend | w=6 | h=418 | line |
| 5 | Section header: Error Breakdown | w=12 | h=0 | text |
| 6 | Errors by type | w=12 | h=500 | bar |
| 7 | Section header: Error Dimensions | w=12 | h=0 | text |
| 8 | Errors by platform | w=6 | h=418 | bar |
| 8 | Errors by app version | w=6 | h=418 | bar |
| 9 | Section header: User Impact | w=12 | h=0 | text |
| 10 | Users affected by errors (table) | w=12 | h=588 | table |
| 11 | Section header: Recovery Patterns | w=12 | h=0 | text |
| 12 | Post-error user return rate | w=12 | h=500 | line |
Text Card Content
Row 1 -- Intro:
<h2>Operational Health</h2><p>Product reliability, error rates, and user impact monitoring. Updated in near real-time.</p>Row 3 -- Reliability Trends:
<h2>Reliability Trends</h2><p>Error rate and success rate over the last 30 days.</p>Row 5 -- Error Breakdown:
<h2>Error Breakdown</h2><p>Errors categorized by type to identify systemic issues.</p>Row 7 -- Error Dimensions:
<h2>Error Dimensions</h2><p>Error distribution across platforms and app versions.</p>Row 9 -- User Impact:
<h2>User Impact</h2><p>How many users are affected by errors and how severely.</p>Row 11 -- Recovery Patterns:
<h2>Recovery Patterns</h2><p>Whether users return to the product after encountering errors.</p>Report Specifications
| Report | Event | Math | Breakdown | Notes |
|---|---|---|---|---|
| Error Rate | {error_event} / {core_action_event} | ratio | -- | Compare to previous period |
| P95 Latency | {page_view_event} | p95 of duration property | -- | Compare to previous period |
| Success Rate | {core_action_event} (success) / {core_action_event} (all) | ratio | -- | 1 - error rate |
| Active Users | {login_event} | dau | -- | Compare to previous period |
| Error rate trend | {error_event} | total | -- | Line chart, 30 days |
| Success rate trend | {core_action_event} | total | Success/failure status | Line chart, 30 days |
| By type | {error_event} | total | Error type property | Bar chart, top 10 |
| By platform | {error_event} | total | Platform | Bar chart |
| By version | {error_event} | total | App version | Bar chart, top 10 |
| Impact table | {error_event} | total, dau | Error type | Table: count, users, rate |
| Recovery rate | Born: {error_event}, Return: {login_event} | -- | -- | 7-day retention post-error |
Template Selection Guide
Use this table to quickly match the user's request to the right template.
| User Says | Template | Why |
|---|---|---|
| "executive dashboard", "KPI overview", "key metrics" | 1: KPI Dashboard | High-level health metrics |
| "feature launch", "new feature tracking", "adoption" | 2: Feature Launch | Post-launch monitoring |
| "growth metrics", "pirate metrics", "AARRR", "full funnel" | 3: AARRR | End-to-end growth tracking |
| "funnel analysis", "conversion optimization", "drop-off" | 4: Conversion Funnel | Deep funnel investigation |
| "retention analysis", "churn", "cohort analysis" | 5: Retention | Retention deep dive |
| "engagement", "usage patterns", "power users" | 6: User Engagement | Engagement depth analysis |
| "marketing", "channels", "campaigns", "acquisition" | 7: Marketing Performance | Channel effectiveness |
| "A/B test", "experiment results", "variant comparison" | 8: Experiment Results | Experiment presentation |
| "errors", "reliability", "ops health", "SLO", "incidents" | 9: Operational Health | Reliability monitoring |
| Unclear or general request | 1: KPI Dashboard | Safe default |
Requirements and compatibility
Written for: OpenAI Codex
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs Python
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Mixpanel
- Publisher
- OpenAI (Official)
- Distributed by
- OpenAI
- Source
- openai/plugins · plugins/mixpanel-headless/skills/dashboard-expert · commit d420d13
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from plugins/mixpanel-headless/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Mixpanel or OpenAI.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download dashboard-expert.zip