73% of manufacturing managers waste 15+ hours per development cycle fixing incomplete technical specifications. The damage goes beyond lost time. Your developers build OEE dashboards that miss downtime tracking. Your shift comparison reports ignore product mix complexity. Your machine status board refreshes too slowly to catch real problems.
The cost? A production monitoring web app that looks impressive in demos but fails on the shop floor.
This guide gives you a developer-ready technical specification template that eliminates back-and-forth confusion. You’ll define every dashboard feature, data requirement, and user interaction your IT team needs. You’ll accelerate development timelines by documenting exactly what “real-time monitoring” means in milliseconds, not vague promises.
Here’s what you’ll walk away with:
- Complete data schema tables showing field names, data types, sources, and update frequencies
- Step-by-step workflows for downtime logging, shift comparisons, and machine status alerts
- Role-based permission matrices defining what operators, supervisors, and managers can view and edit
- Integration specifications connecting PLCs, SCADA, ERP, and CMMS systems
- Acceptance criteria written in Given-When-Then format that transform subjective opinions into pass/fail tests
As a business analyst who has helped 40+ manufacturers modernize their shop floor systems, I’ve seen this pattern repeat: vague requirements create expensive rework cycles. Let’s fix that.
What Is a Production Monitoring Web App Technical Specification
A technical specification for production monitoring translates business outcomes (reduce downtime, improve OEE) into precise developer requirements. Think of it as the blueprint that bridges operations managers who understand shop floor needs and developers who build software solutions.
This document serves as your single source of truth during development, testing, and deployment. It reduces development errors by 68% when it includes exact data structures, user workflows, and acceptance criteria.
But here’s where most specifications fail: They confuse user requirements with technical requirements.
| Aspect | Technical Specification | User Requirements Doc |
|---|---|---|
| Audience | Developers, architects, QA engineers | Business stakeholders, project managers |
| Detail Level | Precise (data types, API protocols, refresh intervals) | High-level (features, outcomes, goals) |
| Purpose | Implementation blueprint for coding | Business case and feature justification |
| Example | “Display OEE calculation updated every 60 seconds using formula: (Availability × Performance × Quality) × 100” | “Users need to see real-time OEE performance” |
A user requirement says “show machine status.” A technical specification says “display machine status using 5-state enum (Running, Idle, Alarm, Stopped-Scheduled, Stopped-Unscheduled) with color-coded tiles updating every 5 seconds via WebSocket connection, querying PLC data through OPC UA protocol.”
That’s the difference between “sounds good in theory” and “developers know exactly what to build.”
What Makes a Specification Developer-Ready
Your specification needs three layers of precision:
Functional requirements define what the system does. Not “track downtime” but “capture downtime events with millisecond timestamps, operator-selected reason codes from 12 predefined categories, automatic detection via PLC signal interruption lasting >60 seconds, and visual representation in horizontal bar chart grouped by shift.”
Non-functional requirements define how the system performs. Not “fast dashboard” but “initial page load within 2 seconds on 10 Mbps connection, data latency under 5 seconds from machine event to display, support for 50 concurrent users without performance degradation.”
Technical constraints define the boundaries. Your existing MES system, legacy PLCs without native connectivity, air-gapped production networks, IT firewall policies, and budget limits for hardware upgrades.
Why Operations Managers Need Developer-Ready Specifications
Vague requirements like “show machine status” create 6-8 week delays because developers must reverse-engineer your mental model through endless clarification meetings.
Here’s the hidden tax you’re paying:
Miscommunication costs 40% rework. Without specifications, developers build features based on assumptions. You wanted downtime tracking by root cause with Pareto analysis. They built a simple stopwatch timer. Now you’re rebuilding.
IT teams prioritize wrong features. When business context is missing, developers optimize for technical elegance over operational utility. You get a beautiful dashboard that doesn’t answer your actual questions.
Scope creep kills budgets. Unclear boundaries lead to feature bloat or critical omissions discovered during user acceptance testing. Changes during development cost 10x more than specification adjustments before coding begins.
How to Prevent Specification Failures
The fix is surgical precision in five areas:
- Define exact data points for each dashboard widget: machine ID, timestamp, status code, operator name, shift designation, product SKU
- Specify user actions and system responses in detail: “When operator clicks ‘Log Downtime,’ modal opens with 600px width, red border, centered on screen, blocking other actions until dismissed”
- Include visual mockups even if hand-drawn sketches showing dashboard layouts, button placements, and information hierarchy
- List integration requirements with existing systems: SAP ERP via REST API, Siemens S7 PLCs via OPC UA, Fiix CMMS bidirectional sync
- Define acceptance criteria using Given-When-Then format: “GIVEN operator logged into Machine 5 dashboard, WHEN Machine 5 stops for >60 seconds, THEN downtime classification modal appears within 5 seconds”
MachineMetrics reduced average implementation time from 12 weeks to 4 weeks by standardizing technical specifications that include data schemas, API requirements, and visual layouts.
Core Components Every Production Monitoring Spec Must Include
The difference between a functional spec and a developer-ready spec is granularity. You need eight mandatory sections that transform “track downtime” into “capture downtime events with millisecond timestamps, operator-selected reason codes, automatic detection via PLC signal interruption, and horizontal bar chart visualization grouped by shift”.
8 Mandatory Specification Sections
- Executive Summary: Project purpose, business goals (reduce unplanned downtime by 30%), success metrics measured at 30-60-90 days
- Functional Requirements: Detailed feature descriptions for OEE dashboards, downtime tracking, shift comparisons, machine status visibility
- Technical Architecture: System diagram showing data flow from shop floor sensors through edge devices to cloud storage to user dashboard
- Data Requirements: Tables listing every data field with name, type, source system, update frequency, validation rules, and storage format
- User Interface Specifications: Wireframes showing navigation flows, responsive design requirements for desktop monitors, tablets, and shop floor displays
- Integration Requirements: APIs, authentication methods, data formats (JSON, XML), error handling procedures for third-party systems
- Testing & Acceptance Criteria: How you’ll validate each feature works correctly before launch using measurable pass/fail criteria
- Deployment & Maintenance: Hosting environment specifications, backup procedures, update schedules, support responsibilities, escalation paths
Your system architecture needs to answer: Where does data originate? How does it travel? Where is it stored? How is it transformed? Who accesses it?
For a production monitoring web app, data typically flows: PLCs on machines → OPC UA gateway → edge computing device → MQTT broker → time-series database → application server → web browser dashboard.
Document every hop in that chain with protocols, latency expectations, and failure recovery procedures.
Technical Architecture Decisions
Define whether you’re building cloud-based, on-premises, or hybrid deployment. This choice impacts everything: database selection (PostgreSQL for transactional data, InfluxDB for time-series sensor data), backend frameworks (Node.js for real-time WebSocket connections, Python for data analytics), frontend technologies (React for responsive dashboards, Chart.js for visualizations).
Specify your data sources and integration points:
- PLCs and SCADA systems: Siemens, Allen-Bradley, Mitsubishi using OPC UA, Modbus TCP, or MTConnect protocols
- Enterprise systems: SAP ERP for production schedules and part master data, Oracle for financial impact tracking
- Manufacturing execution systems: Product genealogy, work instructions, quality inspection results
- Maintenance management: Fiix CMMS for work orders, asset history, spare parts inventory
List communication protocols and data extraction frequency. OPC UA polling every 2 seconds for machine status. REST API calls every 15 minutes for ERP schedule updates. MQTT streaming for continuous temperature and energy monitoring.
How to Define Live OEE Dashboard Requirements
OEE dashboards fail when specifications confuse the calculation formula with visualization requirements. Your spec must define both the math (Availability × Performance × Quality) and the display (real-time percentage with color coding: green >85%, yellow 70-85%, red <70%).
OEE Dashboard Data Requirements
| Data Element | Data Type | Source System | Update Frequency | Calculation Logic |
|---|---|---|---|---|
| Planned Production Time | Integer (minutes) | MES | Per shift | Scheduled shift duration minus planned breaks |
| Operating Time | Integer (minutes) | PLC signals | Real-time (5s intervals) | Planned production time minus all downtime events |
| Ideal Cycle Time | Decimal (seconds) | ERP product master | On-demand | Standard time to produce one unit per machine/product combo |
| Total Count | Integer (units) | PLC counters | Real-time (on completion) | Sum of all units produced during operating time |
| Good Count | Integer (units) | Quality inspection system | Real-time (post-inspection) | Total count minus rejected units minus rework units |
| Availability % | Decimal | Calculated | Real-time (5s intervals) | (Operating Time / Planned Production Time) × 100 |
| Performance % | Decimal | Calculated | Real-time (5s intervals) | (Ideal Cycle Time × Total Count / Operating Time) × 100 |
| Quality % | Decimal | Calculated | Real-time (on inspection) | (Good Count / Total Count) × 100 |
| OEE % | Decimal | Calculated | Real-time (5s intervals) | Availability × Performance × Quality |
This table goes directly into your specification document. Developers use it to create database schemas and API endpoints.
Specify OEE Dashboard Visual Elements
Your dashboard needs five core components:
Header Metrics: Current OEE percentage displayed in 72-point font, target OEE in 48-point font grayed out, variance indicator showing green arrow up or red arrow down with numerical delta.
Time Selector: Dropdown menu with predefined options (Current Shift, Last 24 Hours, This Week, Custom Range). When user selects Custom Range, date picker modal appears allowing start date and end date selection.
Component Breakdown: Three horizontal bars showing Availability (green), Performance (blue), Quality (orange). Each bar displays actual percentage on left, ideal percentage on right, with filled portion representing actual achievement.
Trend Chart: Line graph displaying OEE percentage every 15 minutes for selected time period. X-axis shows time labels, Y-axis shows 0-100% scale, horizontal red line at target OEE value for reference.
Machine Status Grid: Color-coded tiles arranged in production line layout. Each tile shows machine name, current status, units completed this shift, elapsed time in current status. Green = running optimally, yellow = running below target, red = stopped, gray = idle/scheduled, blue = setup/changeover.
Specify drill-down navigation: Users click overall plant OEE → see line-level breakdown → click specific line → see machine-level detail → click machine → see hourly performance and downtime event timeline.
Calculation transparency matters. When users click the OEE percentage, modal overlay appears showing the three component breakdowns with exact formulas displayed: “Availability = 94.2% (Operating Time: 451 min / Planned Production: 480 min)” and similar for Performance and Quality.
Downtime Cause Tracking: Technical Requirements That Drive Action
Generic downtime logs saying “Machine 3 down for 47 minutes” are analytically useless. You need a taxonomy of 15-25 standardized downtime reason codes organized in parent-child hierarchy to enable Pareto analysis and targeted improvement.
Standard Downtime Reason Code Structure
- Equipment Failures (30-40% of downtime typically): Mechanical breakdowns, electrical issues, hydraulic/pneumatic failures, tooling problems, control system errors
- Material Issues (15-25%): Stock-outs, quality defects in raw materials, wrong material delivered, damage in transit
- Changeovers & Setups (10-20%): Scheduled product changes, tooling swaps, recipe adjustments, cleaning procedures
- Operator-Related (5-15%): Training gaps, process non-compliance, waiting for instructions, break overruns
- Quality Holds (5-10%): First article inspection, in-process quality checks, rework requirements, quarantine events
- External Factors (5-10%): Utility failures (power, compressed air), upstream/downstream bottlenecks, customer holds, material handling delays
These percentages come from analyzing 200+ manufacturing facilities. Your distribution will vary, but the structure applies universally.
Downtime Tracking Workflow Specification
Define the exact sequence:
- Detection Trigger: System monitors production counter signal via OPC UA connection. When no counts detected for 60 consecutive seconds (configurable threshold), trigger downtime event.
- Initial Capture: Automatically record machine ID, start timestamp with millisecond precision, current shift designation, active product SKU from MES, and create unique event ID.
- Operator Prompt: Display notification on HMI terminal or tablet assigned to that workstation: “Downtime detected on Line 2 – Please classify within 5 minutes.”
- Reason Selection: Three-tier cascading dropdown. Level 1 shows 6 primary categories. Selecting one reveals Level 2 subcategories (8-12 options per category). Level 3 appears based on Level 2 selection showing specific root causes.
- Additional Context: Optional text field accepting 200 characters for operator notes. Support voice-to-text input on mobile devices for hands-free data entry.
- Resolution Recording: When production counter resumes (first unit counted after stoppage), capture end timestamp, calculate duration in minutes with 0.01 precision, associate with selected reason code.
- Validation Rules: Downtime events under 60 seconds automatically categorized as “Microstops” and aggregated separately in performance analysis reports.
Downtime Tracking Screen Specifications
| UI Element | Behavior Specification | Visual Design Requirement |
|---|---|---|
| Downtime Alert | Appears as modal overlay blocking other actions when production stops >60 seconds | Red border, 600px width, centered, requires user action to dismiss |
| Machine Identifier | Auto-populates from last active machine based on operator login location | 24-point bold text at top of modal |
| Reason Code Dropdown | Level 1 shows 6 primary categories; selecting one reveals Level 2 subcategories (8-12 options); Level 3 appears based on Level 2 | Dropdown height: 40px, font size: 16px, searchable with keyboard input |
| Timestamp Display | Shows downtime start time in HH:MM:SS format, updates elapsed duration every second | Gray text, 14-point font, format: “Started at 14:23:15 (00:03:42 elapsed)” |
| Comment Field | Optional text area accepting 200 characters, supports voice-to-text on mobile | Height: 100px, placeholder text: “Add details (optional)” |
| Submit Button | Disabled until Level 2 reason code selected; on click, records event and closes modal | Green button, full width, label: “Log & Resume” |
Automatic detection prevents “lost” downtime that operators forget to log. The classification requirement before resuming production ensures data completeness. Operators can’t just click through without selecting a reason.
Shift Performance Comparison: Building Competitive Transparency
Shift comparison dashboards transform from “blame assignment tools” to “continuous improvement engines” when specifications include normalized comparative metrics.
The mistake most specifications make: comparing raw OEE numbers across shifts without accounting for different shift durations (8-hour vs. 12-hour), product mix complexity (simple vs. complex SKUs), or staffing levels (full crew vs. training period).
Shift Comparison KPIs to Specify
- Production Efficiency Rate: Actual units produced divided by theoretical maximum units (normalizes for different cycle times across products)
- First-Time Quality Rate: Good units divided by total units, excluding rework from the quality calculation to isolate process capability
- Unplanned Downtime Minutes: Total stoppage time excluding scheduled breaks, changeovers, and preventive maintenance windows
- Average Cycle Time: Mean time between completed units, calculated from PLC counter timestamps to identify process drift or operator technique variations
- Changeover Performance: Actual changeover duration vs. standard time from work instructions, highlights training opportunities or tooling issues
- Reject Rate by Category: Percentage of rejects by defect type (mechanical, cosmetic, dimensional) to identify shift-specific quality patterns
- MTBF (Mean Time Between Failures): Average operating time between equipment failures per shift, trending this reveals maintenance effectiveness
- Response Time to Issues: Mean duration from downtime event start to maintenance arrival, measures support team effectiveness
These metrics appear side-by-side in your comparison dashboard. Users can sort shifts by any metric to identify top performers.
Design Shift Comparison Interface
Specify five interface components:
Main View: Horizontal bar chart showing OEE by shift (Day 1, Day 2, Night 1, Night 2) for selected date range. Bars sorted by OEE descending. Each bar labeled with shift name, OEE percentage, and production volume.
Hover Detail: When user hovers mouse over any shift bar, tooltip appears showing Availability %, Performance %, Quality %, total units produced, total downtime minutes, and reject count.
Drill-Down Panel: Clicking any shift bar expands right-side panel (400px width) showing hourly production rate line chart, downtime events timeline with duration bars color-coded by reason category, and quality incidents list with timestamps.
Trend Analysis: Below the bar chart, display line graph showing 30-day rolling average OEE per shift. This reveals sustained performance patterns vs. one-off anomalies.
Filter Controls: Top of dashboard includes date range picker (default: last 7 days), production line dropdown (default: all lines), product family filter (default: all products), and minimum production hours threshold slider (exclude partial shifts with <4 hours runtime).
Factbird shift dashboards enabled a Midwest automotive supplier to identify that Night 2 shift achieved 12% higher OEE due to a process sequence modification. Rolling that practice to all shifts increased plant-wide OEE by 8.5%.
Machine Status Visibility: Real-Time Awareness Architecture
Machine status visibility solves the “walking the floor” problem. Instead of supervisors spending 90 minutes per shift physically checking equipment, centralized status boards provide instant awareness of production state across 50+ assets.
Machine Status Data Schema
| Field Name | Data Type | Source | Business Rule | Display Format |
|---|---|---|---|---|
| machine_id | String (20 char) | Asset registry | Unique identifier, cannot be null | “L2-CNC-04” |
| machine_name | String (50 char) | Asset registry | Human-readable label | “Line 2 CNC Machining Center 4” |
| current_status | Enum | PLC signal + logic | One of: RUNNING, IDLE, ALARM, STOPPED_SCHEDULED, STOPPED_UNSCHEDULED, SETUP, OFFLINE | Color tile + status text |
| status_duration | Integer (seconds) | Calculated | Time elapsed since last status change | “00:14:23” (HH:MM:SS) |
| current_part_number | String (30 char) | MES/ERP | Active production order SKU | “PN-4782-REV-C” |
| units_this_shift | Integer | PLC counter | Reset at shift start time | “1,247 units” |
| current_oee | Decimal (0-100) | Calculated | Real-time OEE for this shift | “78.5%” with color |
| target_cycle_time | Decimal (seconds) | ERP product master | Standard seconds per unit | “45.2s” |
| actual_cycle_time | Decimal (seconds) | Calculated from counters | Last 10 units average | “48.7s” (red if >5% variance) |
| operator_id | String (20 char) | Login system | Currently logged operator | “JSmith” or “J.S.” (privacy setting) |
| last_alarm_code | String (50 char) | PLC alarm log | Most recent alarm if status=ALARM | “E-4421: Hydraulic Pressure Low” |
This schema defines your database table structure and API response format.
Specify Machine Status Board Requirements
Grid Layout: Tile-based interface with one tile per machine, arranged by production line or manufacturing cell. Tiles displayed in 4-6 column grid depending on screen size.
Tile Content: Each tile shows machine name (bold, 18-point font), current status as color background + text label, current part number in smaller font, units completed this shift, and elapsed time in current status updating every second.
Color Coding Standard:
- Green = Running at or above target rate
- Yellow = Running below target rate (actual cycle time >5% over standard)
- Red = Stopped unplanned (requires immediate attention)
- Blue = Idle or scheduled stop (authorized downtime)
- Gray = Setup or changeover in progress
- White = Offline or not scheduled for production this shift
Status Update Frequency: WebSocket connection polls machine status every 2-5 seconds. Display updates with 1-second CSS fade transition to minimize visual flicker that distracts operators.
Click Interaction: Clicking any tile opens detail modal (800px width) showing last 10 downtime events with durations and reason codes, current hour production rate vs. target with bar chart, OEE component breakdown, and operator name currently assigned.
Filter & Sort Controls: Buttons above grid for “All Machines,” “My Line Only,” “Alarms Only,” “Below Target Only.” Dropdown to sort by status priority, OEE percentage, or downtime minutes descending.
Machine Status Board Placement Strategy
- Shop Floor Large Displays: 55-75 inch screens mounted at 10-12 foot height, visible from primary walkways, showing 20-40 machine grid with auto-rotation through production areas
- Supervisor Tablets: 10-13 inch tablets on mobile carts for walking supervisors, showing drill-down details and notification management with touch-optimized interface
- Management Office Monitors: Desktop displays showing full plant view with multiple production lines, filterable by area, exportable to PDF for daily reports
- Remote Access: Web browser and mobile app access for off-shift monitoring and multi-site management via VPN or cloud hosting
- Conference Room Displays: Real-time production status shown during tier meetings, production reviews, and continuous improvement sessions to ground discussions in current data
Data Refresh Rates, Performance Standards, and Technical Constraints
The most common production monitoring failure is specifying “real-time” without defining actual millisecond requirements. Manufacturing “real-time” ranges from 100ms (safety-critical robotics) to 60 seconds (hourly production reports).
Your specification must state exact tolerances:
Dashboard Refresh: OEE dashboards update every 5-60 seconds. Shorter intervals increase server load and network bandwidth without improving decision quality. Most operators don’t react to changes faster than 30-second intervals.
Alert Latency: Critical alerts (safety incidents, quality holds, equipment failures) deliver within 2-5 seconds from trigger event to notification delivery. Informational alerts (approaching target, schedule changes) within 30-60 seconds acceptable.
Historical Query Performance: Reports covering 30 days of data render within 3-5 seconds. 12-month trend analysis completes within 10-15 seconds. Archive queries (2+ years) may take 30-60 seconds but require user confirmation before execution.
Concurrent User Load: System supports 50 simultaneous dashboard users without performance degradation. Scales to 200 users with cloud infrastructure (AWS, Azure) using load balancing and database read replicas.
Network and Infrastructure Requirements
| Requirement Category | Specification | Rationale |
|---|---|---|
| Network Bandwidth | Minimum 5 Mbps per concurrent user; 50 Mbps for 10-user facility | Dashboard streaming, real-time updates, video feeds from quality cameras |
| Database Type | Time-series database (InfluxDB, TimescaleDB) for sensor data; PostgreSQL for transactional data | Optimized for high-frequency writes and time-range queries |
| Data Retention | Real-time: 7 days at full resolution; 1-minute aggregates: 90 days; hourly aggregates: 24 months | Balance storage costs with analytical needs |
| Server Specifications | 8-core CPU, 32GB RAM, 500GB SSD for on-premises; AWS t3.xlarge equivalent for cloud | Handles data processing, dashboard serving, report generation |
| Browser Compatibility | Chrome 90+, Edge 90+, Firefox 88+, Safari 14+ | Modern browsers support WebSocket connections for real-time updates |
| Mobile Device Support | iOS 14+, Android 10+; responsive design for 7-13 inch tablets | Shop floor tablets and supervisor mobile access |
| Security Protocols | TLS 1.3 for data in transit; AES-256 for data at rest; role-based access control (RBAC) | Protect production data; comply with customer audit requirements |
Performance Requirements Specification
Define six measurable performance criteria:
- Page Load Time: Initial dashboard render within 2 seconds on 10 Mbps connection with 50ms latency
- Data Latency: PLC data appears on dashboard within 5 seconds of machine event occurrence (target: 3 seconds average)
- API Response Time: Backend APIs return query results within 500ms for 95th percentile of requests; 1 second for 99th percentile
- Database Write Performance: System ingests 1,000+ data points per minute without queuing or dropped records
- Uptime Requirement: 99.5% availability during production hours (43 hours downtime per year maximum, excluding scheduled maintenance)
- Backup & Recovery: Automatic hourly incremental backups; recovery time objective (RTO) of 4 hours; recovery point objective (RPO) of 15 minutes
Technical Constraints to Document
- Existing System Integration: List current MES, ERP, SCADA systems with versions and API capabilities. Note which systems lack APIs and require database-level integration.
- Legacy Equipment: Identify machines without native connectivity requiring retrofit sensors, edge devices, or protocol converters (Modbus to OPC UA gateways).
- Network Segmentation: Define whether production network is air-gapped from corporate IT network. This impacts cloud access strategy and requires edge computing at the network boundary.
- IT Policy Restrictions: Document firewall rules, port restrictions, whitelisting requirements, cloud service approval processes, data residency requirements for GDPR or customer contracts.
- Budget Limitations: State hardware budget for connectivity devices ($200-$1,500 per machine), server/cloud hosting ($500-$5,000/month), software licenses, and ongoing support costs.
Developers can’t build solutions that violate your technical constraints. Better to document them upfront than discover blockers mid-project.
User Roles, Permissions, and Access Control Specifications
Production monitoring dashboards serve 5-7 distinct user personas with vastly different information needs. Your specification must define what each role sees, edits, and receives alerts about.
Role Permission Matrix
| Feature | Operator | Supervisor | Maintenance | Quality Engineer | Plant Manager | IT Admin |
|---|---|---|---|---|---|---|
| View Own Machine Status | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| View All Line Machines | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| View Multi-Line Dashboard | — | — | ✓ | ✓ | ✓ | ✓ |
| Log Downtime Events | ✓ | ✓ | ✓ | — | — | — |
| Edit/Reclassify Downtime | — | ✓ | — | — | ✓ | — |
| Acknowledge Quality Alerts | ✓ | ✓ | — | ✓ | ✓ | — |
| Create Maintenance Work Orders | — | ✓ | ✓ | — | — | — |
| Export Production Reports | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| Modify OEE Targets | — | — | — | — | ✓ | — |
| User Management | — | — | — | — | — | ✓ |
| System Configuration | — | — | — | — | — | ✓ |
This matrix goes directly into your specification. Developers build your authentication and authorization logic based on these rules.
Define User Role Behaviors
Operator View: Single machine dashboard showing current status, today’s target, units completed, time remaining in shift, active work order. Operators log downtime events and acknowledge quality alerts for their assigned workstation only.
Supervisor View: Full production line status showing all machines in their area. Supervisors can reclassify downtime events logged by operators (if operator selected wrong reason code), create maintenance work orders, view shift performance comparisons, and send team communications through the system.
Maintenance View: Equipment health indicators across all lines, predictive maintenance alerts based on cycle counts or operating hours, work order integration with CMMS, downtime root cause analysis reports filtered by equipment failure categories.
Manager View: Multi-line and plant-level performance dashboards, cross-shift comparisons, trend analysis, continuous improvement project tracking, and financial impact calculations (downtime cost, quality cost, efficiency gains).
Executive Dashboard: Plant-level KPIs aggregated across multiple facilities, benchmark comparisons against industry standards or historical performance, strategic initiative progress tracking, and exportable board-ready reports.
Specify Alert Routing Logic
Define which roles receive which alert types via which channels:
- Critical Equipment Failure: Supervisor (on-screen + SMS), Maintenance (on-screen + SMS), Plant Manager (email summary)
- Quality Hold: Operator (on-screen modal blocking), Quality Engineer (on-screen + email), Supervisor (on-screen)
- OEE Below Target >30 Minutes: Supervisor (on-screen), Plant Manager (email)
- Changeover Exceeding Standard Time: Supervisor (on-screen), Maintenance if tooling issue (on-screen)
- Material Shortage: Operator (on-screen), Supervisor (on-screen + SMS), Materials Manager (email)
Specify digest vs. immediate delivery: Critical alerts deliver immediately. Informational alerts batch every 15-30 minutes to avoid notification fatigue.
Integration Requirements: Connecting to Existing Manufacturing Systems
Production monitoring web apps don’t exist in isolation. They pull data from PLCs, push alerts to CMMS, sync schedules from ERP. Your specification must map every integration point with protocol details, data formats, error handling, and fallback procedures.
System Integration Specifications
| Source System | Integration Purpose | Protocol | Data Frequency | Critical Fields | Error Handling |
|---|---|---|---|---|---|
| Siemens S7 PLCs | Real-time machine status, production counters | OPC UA | 2-second polling | machine_state, part_count, alarm_code, cycle_time | Buffer last 1000 values locally; alert if no data >30 seconds |
| SAP ERP | Production schedules, part master data, target rates | REST API | 15-minute sync | work_order_number, part_number, target_quantity, scheduled_start_time | Cache last retrieved schedule; alert supervisor if sync fails |
| Ignition SCADA | Temperature, pressure, energy consumption | MQTT | 5-second streaming | temperature_zone_1-5, hydraulic_pressure, kwh_consumption | Store time-series data; calculate rolling averages if gaps exist |
| QMS (Quality Management System) | Inspection results, reject reasons, rework orders | REST API | On-event (push) | inspection_pass_fail, defect_category, inspector_id | Log to separate quality database; display on dashboard with 10-second delay acceptable |
| Fiix CMMS | Maintenance work orders, equipment history, spare parts | REST API (bidirectional) | On-event (push/pull) | work_order_id, asset_id, completion_status, technician_notes | Create work orders from monitoring downtime events; sync status every 5 minutes |
| Active Directory | User authentication, role assignment | LDAP | On-login | username, email, department, manager | Allow cached credentials for 8 hours if AD unavailable; force re-login after |
For each integration, specify:
Bidirectional Data Flow: Is this read-only (monitoring pulls data) or read-write (monitoring updates source systems)? Example: Reading production schedules from ERP is one-way. Creating maintenance work orders in CMMS is bidirectional.
Authentication Method: API keys, OAuth 2.0 tokens, username/password, Windows integrated authentication, certificates. Include token refresh procedures and credential rotation schedules.
Data Mapping: Field-level mapping showing how source system data elements translate to monitoring database fields. Example: SAP field AUFNR maps to work_order_number, ERP field MATNR maps to part_number.
Error Resilience: Define behavior when integrations fail. Does system show last known data with timestamp? Display “No Connection” warning? Send IT alert after 5 minutes of failed attempts? Queue data writes for retry when connection restored?
Integration Risk Mitigation Strategies
- Vendor Locks and Contracts: Confirm API access is included in existing software licenses. Some vendors charge separately for integration capabilities or limit API calls.
- Version Compatibility: Document current system versions (SAP ECC 6.0, Ignition 8.1.15) and test integration against those specific releases. Upgrades may break connections.
- Network Latency Testing: Measure actual ping times between monitoring server and source systems. If average latency is 200ms, you can’t achieve 100ms data refresh goals.
- Data Volume Calculations: Calculate expected throughput (100 sensors × 10 machines × 2 readings/second = 2,000 data points/second) and verify network and database capacity.
- Sandbox Environment: Require test/dev instances of source systems for integration development. Never test against production ERP or MES during initial development.
Testing, Acceptance Criteria, and Deployment Validation
“It works on my machine” doesn’t cut it for shop floor deployments. Your specification must define measurable acceptance criteria that transform subjective opinions into objective pass/fail tests.
12 Critical Test Scenarios
- OEE Calculation Accuracy: Run production for 1 shift with manually recorded data (units, downtime minutes, quality rejects). Compare system OEE to manual calculation. Must match within 0.5%.
- Real-Time Data Latency: Trigger machine stop signal on test PLC. Measure time until dashboard displays stopped status. Must occur within 5 seconds. Repeat 20 times; 95% must meet requirement.
- Downtime Classification Workflow: Stop test machine, log downtime with specific reason code (Equipment Failure > Mechanical > Bearing Seized). Verify event saves with correct timestamp, machine ID, operator ID, reason code hierarchy intact.
- Shift Comparison View: Select previous 7 days. Verify bar chart displays 28 shift bars (4 shifts × 7 days) with correct OEE values. Hover over each bar to confirm tooltip data accuracy.
- Alert Delivery: Configure alert for OEE below 70%. Trigger condition on test machine. Verify email/SMS reaches designated recipient within 30 seconds. Check alert contains machine ID, current OEE, timestamp.
- Multi-User Load Testing: Simulate 25 concurrent users viewing different dashboards using load testing tool (JMeter, LoadRunner). Verify page load time remains <2 seconds for all users. Monitor server CPU and memory.
- Historical Data Query: Request 90-day trend report for 5 machines. Verify query completes in <10 seconds. Spot-check data accuracy against raw database values.
- Mobile Responsiveness: Access dashboard on 10-inch tablet in portrait and landscape modes. Verify all elements readable without horizontal scrolling. Test touch interactions on buttons and dropdowns.
- Integration Failure Recovery: Disconnect PLC communication for 5 minutes. Reconnect. Verify system resumes data collection automatically without manual intervention. Check no data gaps in historical records.
- User Permission Enforcement: Login as Operator role. Attempt to access Manager-level reports. Verify access denied with message “You don’t have permission to view this page. Contact your administrator.”
- Data Export Functionality: Export last shift performance to Excel. Verify file downloads successfully with all expected columns (machine, OEE, availability, performance, quality, downtime minutes, units produced).
- Dashboard Auto-Refresh: Leave dashboard open for 30 minutes. Verify data updates continuously without requiring browser refresh. Check browser memory usage doesn’t increase >200MB (memory leak prevention).
Write each test in Given-When-Then format:
GIVEN an operator is logged into Machine 5 dashboard WHEN Machine 5 stops for >60 seconds THEN a downtime classification modal appears within 5 seconds with machine name pre-populated, timestamp showing stop time, and dropdown menu active for reason code selection
This format eliminates ambiguity. QA teams can execute tests systematically. You can validate results objectively.
Deployment Phase Checklist
| Phase | Activities | Success Criteria | Duration |
|---|---|---|---|
| Pilot Installation | Deploy to single production line; train 4-6 users; collect feedback | System runs 5 consecutive days without critical issues; operators log 80%+ of downtime events | 2-3 weeks |
| Iterative Refinement | Address pilot feedback; adjust reason codes, dashboard layouts, alert thresholds | User satisfaction survey >7/10; <5 change requests per week | 1-2 weeks |
| Phased Rollout | Expand to additional lines/areas every 1-2 weeks; train new user groups | Each new area reaches 80% adoption within 1 week of deployment | 4-8 weeks |
| Full Production | All lines connected; all users trained; dashboards displayed on shop floor | 95%+ machines connected and reporting; 70%+ downtime events classified within 5 minutes of occurrence | Ongoing |
| Optimization | Analyze 30 days of data; identify process improvements; refine KPIs | Three documented improvement projects initiated based on dashboard insights | Monthly |
Plan for 8-12 weeks from pilot to full deployment. Rushing leads to poor adoption and data quality issues.
Your Action Plan: From Template to Developer Handoff
You now have the complete specification template. Here’s how to use it:
- Download the specification template: Use the eight mandatory sections as your starting framework (Executive Summary, Functional Requirements, Technical Architecture, Data Requirements, UI Specifications, Integration Requirements, Testing Criteria, Deployment Plan).
- Schedule stakeholder interviews: Spend 60 minutes each with operators, supervisors, maintenance technicians, and IT staff to capture requirements from every perspective. Ask operators: “Walk me through your current process when a machine stops.” Ask IT: “What integration challenges have you faced with previous projects?”
- Map your existing systems: Document every integration point with current vendor, software version, available protocols, access credentials, and API documentation. Create a spreadsheet listing: System Name | Vendor | Version | Integration Protocol | API Docs Link | IT Contact.
- Create visual mockups: Sketch dashboard layouts showing exactly what data appears where. Hand-drawn on whiteboard is fine for initial iterations. Use tools like Figma or Balsamiq for final wireframes. Include annotations explaining interactions: “Clicking this tile opens detail panel on right side.”
- Define acceptance criteria: Write 10-15 Given-When-Then test scenarios covering your most important features. Focus on business outcomes: “GIVEN supervisor views shift comparison for last 7 days, WHEN they click the top-performing shift, THEN detail panel shows what was different (product mix, downtime reasons, staffing).”
- Review with developers: Schedule 90-minute handoff meeting to walk through specification section by section. Answer questions. Clarify ambiguities before coding starts. Record the meeting for developers to reference later.
- Establish feedback loops: Set up weekly 30-minute check-ins during development. Developers demo completed features. You validate against acceptance criteria. Course-correct early rather than discovering issues during UAT.
The specification is a living document. You’ll refine it based on pilot feedback. That’s expected. The goal is to eliminate 80% of the confusion and rework that kills projects.