SCADA & OT-to-BI Integration Checklist

An actionable, savable checklist to guide safe and reliable integration of SCADA/OT telemetry into BI and analytics systems. Record owners, acceptance checks, notes, risk, and site metadata to build operational memory, follow up on actions, and reduce integration risk.

{ "Type": "InteractiveFormDefinition", "Title": "SCADA & OT-to-BI Integration Checklist", "IntroductionHtml": "

Use this checklist to guide and document the integration of SCADA/OT telemetry into BI and analytics platforms. For each area, mark the completion status, assign an owner, record acceptance checks and evidence, and add notes. Saving responses builds an operational record that supports audits, handoffs, and continuous improvement.

", "SubmitLabel": "Save checklist", "SuccessMessage": "Checklist saved. You can return to update or export responses.", "DataType": "scada_integration_checklist", "SchemaVersion": "1.0", "Fields": [ { "Key": "site", "FieldType": "text", "Label": "Site / Plant", "HelpText": "Name or code of the plant or site (e.g., Plant A - Line 3)", "Required": true }, { "Key": "area_or_line", "FieldType": "text", "Label": "Area / Line", "HelpText": "Optional: specific area, line, or cell impacted" }, { "Key": "date", "FieldType": "text", "Label": "Date", "HelpText": "YYYY-MM-DD", "Required": true }, { "Key": "prepared_by", "FieldType": "text", "Label": "Prepared by (name/role)", "Required": true }, { "Key": "item_1_done", "FieldType": "checkbox", "Label": "Sensor & tag mapping: mapped and documented", "HelpText": "All sensors/tags mapped to BI model with units and stable identifiers" }, { "Key": "item_1_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for sensor & tag mapping", "Options": [ { "Value": "units_documented", "Label": "Units documented and consistent" }, { "Value": "stable_ids_assigned", "Label": "Stable unique IDs assigned" }, { "Value": "naming_standard_applied", "Label": "Naming standard applied" }, { "Value": "ops_reviewed", "Label": "Operations/engineering reviewed mapping" } ] }, { "Key": "item_1_owner", "FieldType": "text", "Label": "Owner for sensor & tag mapping (role/person)", "HelpText": "Responsible person or role to maintain mapping" }, { "Key": "item_1_notes", "FieldType": "textarea", "Label": "Notes / evidence (e.g., link to mapping spreadsheet, change ticket)", "HelpText": "Include links, ticket numbers, or short notes" }, { "Key": "item_2_done", "FieldType": "checkbox", "Label": "Time-series alignment & timezone handling configured", "HelpText": "Timestamps normalized, timezone rules defined, daylight saving handled" }, { "Key": "item_2_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for time-series alignment", "Options": [ { "Value": "utc_or_local_defined", "Label": "UTC/local convention documented" }, { "Value": "dst_handled", "Label": "Daylight saving rules handled" }, { "Value": "sync_verified", "Label": "Timestamp sync verified across sources" } ] }, { "Key": "item_2_owner", "FieldType": "text", "Label": "Owner for time-series alignment", "HelpText": "Role responsible for timestamp policies" }, { "Key": "item_2_notes", "FieldType": "textarea", "Label": "Notes / evidence (e.g., comparison chart, test results)" }, { "Key": "item_3_done", "FieldType": "checkbox", "Label": "Sampling, downsampling & aggregation rules defined", "HelpText": "Include raw sampling rate, downsample scheme, and aggregation windows" }, { "Key": "item_3_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for sampling & aggregation", "Options": [ { "Value": "raw_rate_doc", "Label": "Raw sample rates documented" }, { "Value": "aggregation_rules_doc", "Label": "Aggregation windows & methods documented" }, { "Value": "loss_impacts_analyzed", "Label": "Downsampling impact on analytics assessed" } ] }, { "Key": "item_3_owner", "FieldType": "text", "Label": "Owner for sampling & aggregation" }, { "Key": "item_3_notes", "FieldType": "textarea", "Label": "Notes / examples (e.g., SQL or query examples)" }, { "Key": "item_4_done", "FieldType": "checkbox", "Label": "Latency & retention policies set", "HelpText": "Define acceptable ingestion latency and how long raw and aggregated data are retained" }, { "Key": "item_4_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for latency & retention", "Options": [ { "Value": "latency_sla_doc", "Label": "Ingestion latency SLA documented" }, { "Value": "hot_warm_cold", "Label": "Retention tiers (hot/warm/cold) defined" }, { "Value": "compliance_considered", "Label": "Compliance/retention legal needs considered" } ] }, { "Key": "item_4_owner", "FieldType": "text", "Label": "Owner for latency & retention policies" }, { "Key": "item_4_notes", "FieldType": "textarea", "Label": "Notes / retention schedule references" }, { "Key": "item_5_done", "FieldType": "checkbox", "Label": "Quality checks & missing-data handling established", "HelpText": "Define quality flags, validity ranges, fill strategies, and alerting for missing data" }, { "Key": "item_5_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for data quality", "Options": [ { "Value": "quality_flags", "Label": "Quality flags and codes documented" }, { "Value": "missing_data_strategy", "Label": "Missing-data treatment strategy defined" }, { "Value": "validation_tests", "Label": "Validation tests and sample checks passed" } ] }, { "Key": "item_5_owner", "FieldType": "text", "Label": "Owner for data quality" }, { "Key": "item_5_notes", "FieldType": "textarea", "Label": "Notes / examples of quality rules or test outputs" }, { "Key": "item_6_done", "FieldType": "checkbox", "Label": "Data contracts & change notifications defined", "HelpText": "Define schema/contracts, versioning, and notification channels for changes" }, { "Key": "item_6_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for data contracts", "Options": [ { "Value": "schema_doc", "Label": "Schema/data contract documented" }, { "Value": "versioning_policy", "Label": "Versioning and migration policy defined" }, { "Value": "change_notify", "Label": "Change notification process in place" } ] }, { "Key": "item_6_owner", "FieldType": "text", "Label": "Owner for data contracts" }, { "Key": "item_6_notes", "FieldType": "textarea", "Label": "Notes / contract links, topics for change notifications" }, { "Key": "item_7_done", "FieldType": "checkbox", "Label": "Safety & security constraints validated", "HelpText": "Confirm that integration does not expose control functions, secrets, or violate safety zones" }, { "Key": "item_7_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for safety & security", "Options": [ { "Value": "no_control_plane_access", "Label": "No control-plane access exposed" }, { "Value": "network_segmentation", "Label": "Network segmentation and firewall rules reviewed" }, { "Value": "credentials_handled", "Label": "Credentials and secrets managed/rotated" }, { "Value": "security_reviewed", "Label": "Security review/compliance completed" } ] }, { "Key": "item_7_owner", "FieldType": "text", "Label": "Owner for safety & security" }, { "Key": "item_7_notes", "FieldType": "textarea", "Label": "Notes / security assessment links or ticket IDs" }, { "Key": "item_8_done", "FieldType": "checkbox", "Label": "Owners & operational alerts configured", "HelpText": "Assign owners and configure operational alerts for events, quality, and downtime" }, { "Key": "item_8_acceptance", "FieldType": "checkbox", "Label": "Acceptance checks for owners & alerts", "Options": [ { "Value": "owners_assigned", "Label": "Owners assigned for each stream/metric" }, { "Value": "alert_thresholds_doc", "Label": "Alert thresholds and channels documented" }, { "Value": "oncall_or_rotations", "Label": "Escalation/on-call defined" } ] }, { "Key": "item_8_owner", "FieldType": "text", "Label": "Owner for alerts & operational follow-up" }, { "Key": "item_8_notes", "FieldType": "textarea", "Label": "Notes / alert configuration references" }, { "Key": "overall_risk", "FieldType": "scale", "Label": "Overall integration risk (1 = low, 5 = high)", "HelpText": "Quick team judgment of residual risk after controls" }, { "Key": "next_steps", "FieldType": "textarea", "Label": "Next steps / action items", "HelpText": "List prioritized follow-ups, owners, and target dates" }, { "Key": "attachment_references", "FieldType": "textarea", "Label": "References / links", "HelpText": "Links to mapping docs, tickets, security assessments, dashboards, or datasets" } ] }

Discussion

Comments and conversation will live here.