Appearance
Analytics hub
Normative product contract: Analytics industry profile (exceedance-first fleet risk, explorer, alarm ops, prediction as secondary).
The Analytics sidebar item (/analytics) covers fleet analysis and industrial condition-monitoring expectations.
What you can do today
| Capability | Where |
|---|---|
| Ask (a sentence, or a suggestion from this tenant's fleets) | Analytics → Ask |
| Metric Explorer (type + key + range + aggregation) | Analytics → Metric Explorer |
| Time-bucket series charts | Explorer (auto / 5m / 1h / 1d) |
| Top/Bottom rankings + fleet KPIs | Explorer |
| Threshold anomaly count | Explorer (Above/Below) |
| Linear forecast | Explorer + POST /api/analytics/forecast (engine=linear) — capped |
| Seasonal / StatsForecast predictive | Explorer Predictive + optional forecast-worker sidecar |
| Pattern heatmap (hour × weekday) | Explorer |
| Z-score statistical anomalies | Explorer + POST /api/analytics/statistical-anomaly |
| Asset hierarchy rollups | Explorer + POST /api/analytics/asset-rollup |
| Alarm ops (MTTA/MTTC, noisy rules) | Analytics → Alarm ops |
| Shared saved views | Analytics → Saved views (private / tenant / shared emails) |
| Learned watch (opt-in alarm when a reading leaves its normal band) | Ask, or POST /api/analytics/watches |
| Time-to-limit and next-period total, in one sentence | Ask |
| Vibration level, peak, crest, and dominant frequency | Ask, on a vibration key or a named reading |
| Profile calculated fields on ingest | Device Profiles → Calculated fields |
| Analytics Solutions | Phases A–C packs |
How to ask
The device type and the reading are dropdowns on the Analytics page. Run uses those dropdowns.
Ask matches the sentence to this tenant’s device types and keys. The number is calculated from stored telemetry. Ranking, a linear forecast, a vibration check, and a learned watch are what that calculation does. An open language model is not part of the answer.
Ask uses the same names inside a sentence:
- Fleet: say the device type with spaces.
energy_meteris “energy meters”.ht_sensoris “ht sensors”.machineis “machines”. - Reading: say the telemetry key with spaces.
voltage_vln_avgis “voltage vln avg”.temperatureis “temperature”. - One device: use the name shown on the device, such as
avh1. The long id is not the name. - Or press a suggestion. Those lines are filled from the fleets and readings this tenant already has.
Example: “Which machines have the highest temperature in the last 24 hours?”
A watch stays off until someone asks. Example: “Watch temperature anomalies on Machine 3.” It learns the normal from about 30 readings, then opens a warning alarm when the reading drifts, and clears the alarm when the reading returns. Scoring runs every 10 minutes. Nothing is watched for a tenant until a watch exists.
If the sentence names neither a fleet nor a reading, the answer lists what this tenant has.
Forecast mode UX
Fleet risk ranking answers “which of my 500 devices look worst?” using the industry profile: crossings → samples over limit → time over limit, then score/forecast assist. Set Above/Below or ranking is not exceedance-based.
Forecast chart is drill-down only (Linear/Predictive, Top-N auto or manual multi-select, capped device count). Use Chart on a risk row to inspect one device.
Limits: GET /api/analytics/forecast-limits · APIs: POST /api/analytics/forecast, POST /api/analytics/fleet-forecast-risk.
| Surface | Default max devices | Purpose |
|---|---|---|
| Linear chart | 12 | Detail line chart |
| Predictive chart | 5 | Detail seasonal chart |
| Fleet risk scan | 1000 | Rank whole type |
Capability map
| Capability | Now | Later |
|---|---|---|
| Metric Explorer | Yes | Richer calendars / heatmaps |
| Calculated fields | Profile expressions on ingest | More expression functions |
| Asset rollups | Hierarchy rollup API + Explorer | Multi-metric trees |
| Anomaly | Threshold + stale + one-shot z-score, plus an opt-in learned watch | Trained models |
| Prediction | Linear sentence (time-to-limit, next-period total) + StatsForecast worker (AutoETS) with fallback | Batch cache / accuracy UI |
| Saved views | Server private/tenant/shared + local fallback | Folders / permissions UI |
| Visualizations | Bar, line, spectrum, hour×weekday heatmap | Calendar / more view types |
| Ask | Sentence uses this tenant's device types and keys | Open language model |
APIs (confirmed)
POST /api/analytics/forecast— history + linear forecast points per devicePOST /api/analytics/statistical-anomaly— mean/stdDev/z-score vs window baselinePOST /api/analytics/asset-rollup— aggregate a key over asset root + descendantsGET/POST/DELETE /api/analytics/saved-views— visibility:private|tenant|sharedGET /api/analytics/prompts— suggestion sentences from this tenant's fleets and numeric keysPOST /api/analytics/chat— one sentence to a ranking, forecast sentence, vibration report, or watchGET/POST /api/analytics/watchesandDELETE /api/analytics/watches/:id— learned watches. Off until created.
Migrations / env
0039_analytics_saved_views.sql0040_analytics_saved_views_sharing.sql0044_analytics_watches.sqlCALCULATED_FIELDS_ENABLED(default true) — seebackend/ENVIRONMENT.md
Field validation
API + UI smoke checklist: Field validation.
Related
- Phase 4 · Phase 5 · Phase 6
- Validation status (hardware bench tracker)
