Skip to content

Analytics field validation (smoke checklist) ​

This is software smoke validation for the Analytics hub — not hardware bench testing. For BOM/sensor bench status see Validation status.

Last updated: with Ask, learned watches, and vibration.


Prerequisites ​

  1. Backend migrations applied (npm run migrate in backend — through 0044_analytics_watches.sql).
  2. Logged-in tenant user with at least one device type that has telemetry.
  3. Optional: an asset tree with devices assigned (for rollup).
  4. Optional: profile calculated fields enabled (CALCULATED_FIELDS_ENABLED default true).

Metric Explorer ​

StepExpected
Open Analytics → Metric ExplorerPage loads; device types and keys populate
Select type + key + range → Run / auto-loadKPI, Top-N, time series fill when data exists
Set Above/Below thresholdsAnomaly count updates
Change bucket (5m / 1h / 1d)Series re-buckets

Fleet risk / exceedance ​

StepExpected
Set Above/Below + runFleet risk table ranks by crossings, then samples over, then time over limit
First pageTop risky devices for the type (≈ top 10 at page size 10)
No thresholdsWarning — do not treat as failure risk
APIPOST /api/analytics/fleet-forecast-risk

Profile: Analytics industry profile.

Forecast ​

StepExpected
Choose Linear or PredictiveAlert shows that mode’s device / point limits; device count cannot exceed max
Load explorer with enough pointsForecast chart + method tag (linear_regression, seasonal_naive, or statsforecast:*)
Predictive + worker upMethod like statsforecast:auto_ets when FORECAST_WORKER_URL is set
Predictive with worker down / sparse dataFalls back to seasonal-naive or linear (fallback)
Pattern heatmapHour × weekday card fills from series sample
Request more devices than capServer truncates; limits.truncated true
APIGET /api/analytics/forecast-limits · POST /api/analytics/forecast with engine

Statistical anomalies (z-score) ​

StepExpected
Load explorer on a key with variationTable lists devices with latest z and Anomalous/OK
Flat series (stdDev ≈ 0)z ≈ 0, not flagged
APIPOST /api/analytics/statistical-anomaly with zThreshold (default 2.5)

Asset rollup ​

StepExpected
Pick asset + key → Run rollupDevice count + agg / min / max
Asset with no devicesZero devices / empty values
APIPOST /api/analytics/asset-rollup

Shared saved views ​

StepExpected
Save as PrivateVisible only to owner
Save as Whole tenantOther tenant users see it in Saved views
Save as Shared emails + comma listOnly listed emails (+ owner) see it
Open from Saved viewsExplorer filters restore; visibility column shows mode
Migrations0039 + 0040 applied (migrate:status Pending: 0)

Ask ​

StepExpected
Open Analytics → AskSuggestion buttons name fleets and readings this tenant already has
Press a machine or meter suggestionOne sentence and a bar chart for that device type and key
Ask with no fleet and no readingThe answer lists fleets and one reading each
“When will voltage on a named device reach a number?”A line and a sentence. A flat series says it is not moving toward the limit
“Analyze vibration” with no vibration keyThe answer says no vibration series is present
Watch sentence for one named deviceA row appears under Watches. Remove deletes it. No watch is created for other devices

APIs: GET /api/analytics/prompts · POST /api/analytics/chat · GET/POST /api/analytics/watches · DELETE /api/analytics/watches/:id.

Calculated fields (ingest) ​

StepExpected
Profile has calculated_fields expressionDerived key appears on next telemetry ingest / bulk write
CALCULATED_FIELDS_ENABLED=falseExpressions skipped

Alarm ops ​

StepExpected
Analytics → Alarm opsMTTA/MTTC, severity, noisy rules/devices for range

Quick API smoke (authenticated) ​

http
POST /api/analytics/forecast
POST /api/analytics/statistical-anomaly
POST /api/analytics/asset-rollup
GET  /api/analytics/saved-views
POST /api/analytics/saved-views

Bodies match Metric Explorer selections (deviceIds/key/from/to, or assetId for rollup; visibility + sharedWithEmails for saves).

support@autoconnecto.in · founder@autoconnecto.in · +91 92121 00555 · app.autoconnecto.in