Skip to content

content/docs/analytics/dashboards.mdx describes tiles that no dashboard ships (near-total drift, plus a fabricated usage stat) #610

Description

@os-zhuang

Found while working #587 (removing fabricated trend values from dashboard tiles). Filed unassigned, out of scope for that PR — recording it rather than fixing it as a rider.

Problem

content/docs/analytics/dashboards.mdx lists the tiles of each of the four dashboards. Almost none of the listed tiles exist in src/dashboards/*.dashboard.ts. This is a user-facing docs page, so a business user or admin reading it is being told about widgets they will never find in the product.

Actual widgets, read from the registered stack (objectstack.config.tsdashboards[].widgets[]):

Dashboard Docs claim Actually ships
CRM Overview Open Leads; New Leads This Week; My Open Opportunities; Cases Awaiting Response; Top 5 Accounts by Pipeline; Recent Activity Total Revenue; Active Deals; Won Deals; Avg Deal Size; Revenue Trends; Lead Source; Pipeline by Stage; Top Products; Pipeline by Owner
Sales Pipeline by Stage; Forecast vs Quota (gauge); Closed Won this Quarter; Win Rate (last 90 days); Average Deal Size; Average Sales Cycle; Top 10 Open Deals; Slipping Deals; Activity Heatmap Total Pipeline; Closed Won (QTD); Open Opportunities; Avg Deal Size; Pipeline by Stage; Monthly Revenue Trend; Pipeline by Forecast Category; Lead Source; Open Pipeline by Owner; Quota Attainment by Rep; Pipeline by Stage × Lead Source
Service Open Cases by Priority; Cases Approaching SLA; Cases Breached; First Response Time; Resolution Time; CSAT; Case Volume by Origin; Top Case Categories; Agent Workload Open Cases; Critical Cases; Avg Resolution Time; SLA Violations; Cases by Status; Cases by Priority; Cases by Origin; Daily Case Volume; SLA Compliance; Open Cases by Priority
Executive Bookings This Quarter; Pipeline Coverage; Forecast Confidence; Net New ARR; Renewals This Quarter; CSAT and NPS; Customer Acquisition Cost; Top 10 Accounts by ACV; Pipeline Trend Total Revenue (YTD); Active Accounts; Total Contacts; Open Leads; Revenue Trend; Revenue by Industry; Pipeline by Stage; New Accounts; Accounts by Industry

CRM Overview and Executive overlap the real metadata on essentially zero tiles.

Two specific sub-problems worth calling out:

  1. The page promises capabilities the app does not have. "Forecast vs Quota — gauge", "Win Rate (last 90 days)", "Net New ARR", "CSAT and NPS", "Customer Acquisition Cost", "Activity Heatmap", "Slipping Deals" are not tiles, and several are not even measures any dataset defines. This is not stale wording — it is a feature list for a different product.

  2. A fabricated usage statistic. The page asserts: "The Cases Approaching SLA tile is the most-clicked widget on this dashboard — it's how agents prioritise." There is no such tile, and there is no click telemetry anywhere in this repo, so the claim is invented on both counts. Same class of defect as Remove fabricated trend values from crm/sales/service dashboards (executive already did, with rationale) #587: a confident-sounding number that nothing measured.

Related docs drift on the same page, also unverified: the docs describe the CRM Overview tile "New Leads This Week — trend vs prior week", "Win Rate … percentage with trend" and "CSAT … trend". After #587 no tile renders a period-over-period trend at all, so these lines would be wrong even if the tiles existed.

Why CI did not catch it

test/docs-drift.test.ts only guards two classes today:

  • package docs do not drift from the flows they document (flow source vs docs)
  • maintainer docs do not point at directories that no longer exist

Nothing checks that a docs page's tile list matches the dashboards actually registered, so this page can (and did) drift arbitrarily far.

Suggested fix

  • Rewrite content/docs/analytics/dashboards.mdx to describe the tiles the app really ships, keeping the "built for / answers" framing that is genuinely useful.
  • Delete the invented most-clicked-widget claim outright; do not replace it with another unmeasured superlative.
  • Extend test/docs-drift.test.ts with a dashboards rule: every tile name the page lists must resolve to a widget title on the dashboard whose section it sits under. That makes this class fail in CI instead of in front of a customer — same enforcement stance as the guard added for Remove fabricated trend values from crm/sales/service dashboards (executive already did, with rationale) #587.

Deciding whether the docs should be trimmed to reality or the dashboards built up to the docs' ambition is a product call, which is why this is filed rather than fixed inline.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdocumentationImprovements or additions to documentationpm:dispatchedDispatched to a dev agent by /pm-dispatchpm:queueReady for the PM dispatch loop

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions