Business Intelligence and Dashboards
The Business Intelligence pillar of the MATIH Platform provides a complete dashboard and reporting system that integrates deeply with the conversational analytics layer and the data governance framework. Unlike standalone BI tools, MATIH's BI capabilities are built on top of the semantic layer, ensuring that metrics are consistent across every dashboard, every query, and every conversational response.
1.1Dashboard Service
The bi-service (Java, port 8084) manages the complete lifecycle of dashboards and reports:
| Capability | Description | Implementation |
|---|---|---|
| Dashboard CRUD | Create, read, update, and delete dashboards with full version history | PostgreSQL-backed with JSONB for layout storage |
| Widget system | Composable widgets with drag-and-drop layout on a responsive grid | Chart, table, KPI card, text, filter, and image widgets |
| Real-time preview | Live preview of widget changes with instant data refresh | WebSocket-based updates from bi-service to BI Workbench |
| Sharing and embedding | Share via URL, embed in external applications via iframe, or export | Token-scoped sharing with configurable access levels |
| Versioning | Every dashboard save creates a version; rollback to any previous version | Immutable version chain stored in PostgreSQL |
| Folders and tags | Organize dashboards into folders with free-form tags for discovery | Hierarchical folder structure with tag-based search |
Widget Types
The BI Workbench supports a rich set of widget types, each configurable through a visual editor:
| Widget Type | Description | Data Requirements |
|---|---|---|
| Bar Chart | Horizontal and vertical bars, grouped or stacked | Categorical dimension + numeric measure |
| Line Chart | Time series or continuous data with multiple series | Time/continuous dimension + numeric measure(s) |
| Pie/Donut Chart | Proportion visualization with interactive segments | Categorical dimension + numeric measure |
| Scatter Plot | Two-variable correlation with optional color/size encoding | Two numeric measures + optional categorical |
| Area Chart | Stacked or overlapping areas for cumulative trends | Time dimension + numeric measure(s) |
| Heat Map | Two-dimensional intensity visualization | Two categorical dimensions + numeric measure |
| Geographic Map | Choropleth or point maps with geospatial data | Geographic dimension + numeric measure |
| KPI Card | Single metric display with trend indicator and sparkline | Numeric measure with optional comparison period |
| Table | Sortable, paginated data table with conditional formatting | Any combination of dimensions and measures |
| Text Block | Rich text annotations with Markdown support | None (static content) |
| Filter Control | Date range, dropdown, multi-select, or search filter | Dimension values from connected data source |
Cross-Filtering
Dashboards support cross-filtering: clicking a data point in one widget filters all other widgets in the same dashboard. This interaction model enables exploratory analysis without writing queries:
Click "Electronics" in Category Bar Chart
-> Revenue Line Chart filters to Electronics only
-> Regional Map highlights Electronics revenue by region
-> KPI Card updates to show Electronics-specific metrics
-> Table filters to Electronics rowsCross-filtering is implemented via a shared filter context in the BI Workbench frontend (Zustand store) that propagates filter changes to all connected widgets.
1.2Semantic Layer
The semantic-layer service (Java, port 8086) provides a business-friendly abstraction over raw data schemas. It is the foundation for consistent metric definitions across the entire platform.
Metrics Definitions
A semantic metric defines how a business concept maps to a SQL computation:
Metric: "Revenue"
SQL: SUM(order_total) WHERE order_status = 'completed'
Granularity: daily, weekly, monthly, quarterly, yearly
Dimensions: product_category, region, customer_segment, channel
Filters: Exclude returns, exclude internal orders
Owner: Finance team
Data Quality Threshold: 95% completeness requiredMetrics defined in the semantic layer are:
- Reusable -- The same metric definition powers dashboards, conversational queries, and API responses
- Consistent -- All consumers see the same computation, eliminating "my numbers don't match" conversations
- Governed -- Metric definitions require approval to change, with full version history
- Quality-aware -- Each metric references data quality scores, and consumers are warned when quality drops below thresholds
Dimension Hierarchies
Dimension hierarchies define drill-down paths for interactive exploration:
| Hierarchy | Levels | Example Drill Path |
|---|---|---|
| Time | Year > Quarter > Month > Week > Day | 2025 > Q4 > December > Week 52 > Dec 28 |
| Geography | Country > State > City > Store | US > California > San Francisco > Store #42 |
| Product | Division > Category > Subcategory > SKU | Consumer Electronics > Phones > Smartphones > iPhone 16 |
| Organization | Business Unit > Department > Team | Retail > Sales > West Region Team |
Row-Level and Column-Level Security
The semantic layer enforces access policies that apply regardless of how data is accessed:
| Security Type | Mechanism | Example |
|---|---|---|
| Row-level security (RLS) | Filter predicate appended to all queries based on user attributes | Regional manager sees only WHERE region = user.region |
| Column masking | Sensitive columns replaced with masked values based on access level | SSN appears as ***-**-1234 for non-privileged users |
| Metric visibility | Entire metrics hidden from users without specific permissions | Cost metrics visible only to Finance role |
1.3Render Service
The render-service (Node.js, port 8098) handles server-side rendering of visualizations and documents:
| Capability | Technology | Output Formats |
|---|---|---|
| Chart rendering | Puppeteer + ECharts server-side | SVG, PNG (high-DPI support) |
| PDF generation | Puppeteer headless Chrome | Multi-page PDF with cover page, table of contents |
| Thumbnail generation | Sharp image processing | 300x200 PNG thumbnails for dashboard listings |
| Scheduled reports | Cron-based triggers via bi-service | PDF or PNG attachments delivered via notification-service |
| Email embedding | Inline chart images for email reports | PNG with alt text for accessibility |
Scheduled Reports
The bi-service can schedule automated report generation and distribution:
- Schedule definition -- Cron expression (e.g., "every Monday at 8:00 AM") configured per dashboard
- Render trigger -- bi-service calls render-service to generate PDF/PNG of the dashboard
- Distribution -- notification-service delivers the rendered report via email, Slack, or Microsoft Teams
- Recipient management -- Per-dashboard recipient lists with tenant-scoped access control
1.4Dashboard-Conversation Integration
A unique capability of MATIH is the seamless integration between dashboards and conversational analytics:
| Integration | Direction | User Experience |
|---|---|---|
| Pin to dashboard | Conversation -> Dashboard | User pins a chart generated via conversation directly to a dashboard |
| Ask about dashboard | Dashboard -> Conversation | User clicks "Ask about this" on a widget to start a conversational exploration |
| Dashboard narration | Dashboard -> AI | AI generates a natural language summary of a dashboard's key findings |
| Anomaly highlighting | AI -> Dashboard | Analysis Agent flags statistical anomalies and annotates dashboard widgets |
This integration means that dashboards are not static artifacts. They are living documents that can be explored, questioned, and enriched through conversation.
1.5Collaboration Features
| Feature | Description |
|---|---|
| Comments | Thread-based comments on dashboards and individual widgets |
| Annotations | Date-based annotations (e.g., "Product launch") visible on time-series charts |
| Sharing levels | View, Edit, Admin permissions per dashboard with inheritance from folders |
| Change notifications | Subscribers notified when a dashboard is updated or when data changes significantly |
| Usage analytics | Track dashboard views, most-viewed widgets, and user engagement metrics |
| Favorites | Users can star frequently accessed dashboards for quick access |
Deep Dive References
- BI Service Architecture -- Complete bi-service implementation details
- Frontend: BI Workbench -- React component architecture, state management, and widget system
- Semantic Layer -- Detailed semantic layer configuration and MDL (Metric Definition Language) reference
- Render Service -- Server-side rendering pipeline and PDF generation