| f | { | f | { |
| "author": "SMDH Data Science Team", | | "author": "SMDH Data Science Team", |
| "author_email": "info@smdh.uk", | | "author_email": "info@smdh.uk", |
| "cloud_storage_key_segment": "manufacturing-operations-dataset", | | "cloud_storage_key_segment": "manufacturing-operations-dataset", |
| "creator_user_id": "06d04fb0-fe0e-4a6a-b958-061fb38a9f9c", | | "creator_user_id": "06d04fb0-fe0e-4a6a-b958-061fb38a9f9c", |
| "groups": [], | | "groups": [], |
| "id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "isopen": false, | | "isopen": false, |
| "license_id": "other-nc", | | "license_id": "other-nc", |
| "license_title": "Other (Non-Commercial)", | | "license_title": "Other (Non-Commercial)", |
| "maintainer": "Dermot Kerr", | | "maintainer": "Dermot Kerr", |
| "maintainer_email": "d.kerr@smdh.uk", | | "maintainer_email": "d.kerr@smdh.uk", |
| "metadata_created": "2026-02-20T17:42:37.166534", | | "metadata_created": "2026-02-20T17:42:37.166534", |
| n | "metadata_modified": "2026-02-20T17:46:32.480128", | n | "metadata_modified": "2026-02-20T17:48:01.004764", |
| "name": "ulster-university--manufacturing-operations-dataset", | | "name": "ulster-university--manufacturing-operations-dataset", |
| "notes": "# **Manufacturing Operations Dataset | | "notes": "# **Manufacturing Operations Dataset |
| Documentation**\r\n\r\n## **Overview**\r\n\r\nThis package contains | | Documentation**\r\n\r\n## **Overview**\r\n\r\nThis package contains |
| anonymised manufacturing operations datasets extracted from an MES | | anonymised manufacturing operations datasets extracted from an MES |
| (Manufacturing Execution System). These files support the analysis of | | (Manufacturing Execution System). These files support the analysis of |
| **cycle times**, **routing/operation durations**, | | **cycle times**, **routing/operation durations**, |
| **stoppage/downtime**, and **order due-date performance**.\r\n\r\n## | | **stoppage/downtime**, and **order due-date performance**.\r\n\r\n## |
| **Files Summary**\r\n\r\n| File | Rows | Columns | Approx Size (MB) | | **Files Summary**\r\n\r\n| File | Rows | Columns | Approx Size (MB) |
| |\r\n| :---- | :---- | :---- | :---- |\r\n| | | |\r\n| :---- | :---- | :---- | :---- |\r\n| |
| df\\_unit\\_level\\_cycle\\_downtime\\_anonymised.csv | 165,384 | 6 | | | df\\_unit\\_level\\_cycle\\_downtime\\_anonymised.csv | 165,384 | 6 | |
| 6.34 |\r\n| order\\_analysis\\_anonymised.csv | 53,164 | 9 | 3.83 | | 6.34 |\r\n| order\\_analysis\\_anonymised.csv | 53,164 | 9 | 3.83 |
| |\r\n| product\\_cycle\\_anonymised.csv | 952,730 | 17 | 156.75 |\r\n| | | |\r\n| product\\_cycle\\_anonymised.csv | 952,730 | 17 | 156.75 |\r\n| |
| stoppage\\_all\\_anonymised.csv | 10,891 | 14 | 1.93 |\r\n\r\n## | | stoppage\\_all\\_anonymised.csv | 10,891 | 14 | 1.93 |\r\n\r\n## |
| **Anonymisation & Standards**\r\n\r\n* **Anonymisation:** Company | | **Anonymisation & Standards**\r\n\r\n* **Anonymisation:** Company |
| names are replaced with Company\\_XX. Identifiers such as orderId, | | names are replaced with Company\\_XX. Identifiers such as orderId, |
| unitId, stockId, operationId, eventId, and stoppage id are anonymised | | unitId, stockId, operationId, eventId, and stoppage id are anonymised |
| tokens. No personally identifying information (PII) is present. \r\n* | | tokens. No personally identifying information (PII) is present. \r\n* |
| **Timezones:** Timestamp fields include a UTC offset (e.g., \\+00:00). | | **Timezones:** Timestamp fields include a UTC offset (e.g., \\+00:00). |
| When loading into Pandas, it is recommended to use: | | When loading into Pandas, it is recommended to use: |
| pd.to\\_datetime(col, utc=True, errors='coerce'). \r\n* **Negative | | pd.to\\_datetime(col, utc=True, errors='coerce'). \r\n* **Negative |
| Values:** Some duration fields contain negative values due to system | | Values:** Some duration fields contain negative values due to system |
| clock issues. These should be filtered or investigated during the | | clock issues. These should be filtered or investigated during the |
| t | cleaning phase.\r\n\r\n## **Data Dictionary**\r\n\r\n### **1\\. | t | cleaning phase.\r\n\r\n\r\n## **Data Quality Notes**\r\n\r\n* |
| product\\_cycle\\_anonymised.csv**\r\n\r\nUsed for unit-level and | | |
| operation-level benchmarking, bottleneck identification, and | | |
| variability analysis across routing steps.\r\n\r\n| Column | Type | | | |
| Nullable | Description | Notes |\r\n| :---- | :---- | :---- | :---- | | | |
| :---- |\r\n| **stockId** | object | No | Anonymised SKU identifier. | | | |
| |\r\n| **avgEstimatedDurationMinutes** | float64 | No | Average | | |
| estimated duration for this stock/route context. | Range: 1 to | | |
| 6.66e+03 |\r\n| **avgActualDurationMinutes** | float64 | No | Average | | |
| actual duration for this stock/route context. | |\r\n| **unitId** | | | |
| object | No | Anonymised unit/item identifier. | |\r\n| | | |
| **unitEstimatedDurationMinutes** | float64 | No | Estimated duration | | |
| for the unit. | |\r\n| **unitActualDurationMinutes** | float64 | No | | | |
| Actual duration for the unit. | |\r\n| **routingIndex** | int64 | No | | |
| | Sequence index of the step within the route. | Range: 1 to 19 |\r\n| | | |
| **routingEstimatedDurationMinutes** | float64 | No | Estimated | | |
| duration for the routing step. | |\r\n| | | |
| **routingActualDurationMinutes** | float64 | No | Actual duration for | | |
| the routing step. | Contains 139 negative values. |\r\n| | | |
| **operationId** | object | No | Anonymised operation identifier. | | | |
| |\r\n| **operationEstimatedDurationMinutes** | float64 | No | | | |
| Estimated duration for the operation. | |\r\n| | | |
| **operationActualDurationMinutes** | float64 | No | Actual duration | | |
| for the operation. | Contains 165 negative values. |\r\n| | | |
| **itemRoutingOperationId** | object | No | Unique unit-operation | | |
| instance ID. | **Primary key** for stoppage joins. |\r\n| **Date** | | | |
| object | Yes | Production or extract date. | ISO timestamp; 3.35% | | |
| missing. |\r\n| **Company** | object | No | Anonymised company | | |
| identifier. | |\r\n\r\n### **2\\. | | |
| df\\_unit\\_level\\_cycle\\_downtime\\_anonymised.csv**\r\n\r\nUsed | | |
| for unit-level rollups to compare flow time against downtime | | |
| contribution.\r\n\r\n| Column | Type | Nullable | Description | Notes | | |
| |\r\n| :---- | :---- | :---- | :---- | :---- |\r\n| **Company** | | | |
| object | No | Anonymised company identifier. | |\r\n| **unitId** | | | |
| object | No | Anonymised unit/item identifier. | |\r\n| | | |
| **unitActualMin** | float64 | No | Actual elapsed time for the unit | | |
| (minutes). | |\r\n| **totalStopMinutes** | float64 | Yes | Total | | |
| stoppage/downtime minutes for the unit. | 96% missing (treat as 0). | | |
| |\r\n| **numEvents** | float64 | Yes | Number of stoppage events | | |
| linked to the unit. | 96% missing (treat as 0). |\r\n| **numUnits** | | | |
| int64 | No | Count of units represented (usually 1). | |\r\n\r\n### | | |
| **3\\. order\\_analysis\\_anonymised.csv**\r\n\r\nUsed for analysing | | |
| on-time delivery performance and lateness patterns for completed vs | | |
| open orders.\r\n\r\n| Column | Type | Nullable | Description | Notes | | |
| |\r\n| :---- | :---- | :---- | :---- | :---- |\r\n| **orderId** | | | |
| object | No | Anonymised sales/work order identifier. | |\r\n| | | |
| **requiredByDate** | object | Yes | Required-by (due) date/time for | | |
| the order. | ISO timestamp. |\r\n| **completedDate** | object | Yes | | | |
| Completion date/time. | Null for open orders (81%). |\r\n| | | |
| **lateByDays** | float64 | Yes | Order lateness in days (completed \\- | | |
| required). | |\r\n| **lateByDays\\_raw** | float64 | Yes | Raw | | |
| lateness (includes negative values). | |\r\n| **open\\_days\\_late** | | |
| | float64 | Yes | Lateness relative to extract time for open orders. | | | |
| |\r\n| **Is\\_Perfect** | float64 | Yes | Perfect-order flag (1=on | | |
| time, 0=late). | |\r\n| **combinedLateDays** | float64 | Yes | Single | | |
| metric combining open and closed lateness. | |\r\n| **Company** | | | |
| object | No | Anonymised company identifier. | |\r\n\r\n### **4\\. | | |
| stoppage\\_all\\_anonymised.csv**\r\n\r\nUsed for identifying top | | |
| downtime reasons by operation or company.\r\n\r\n| Column | Type | | | |
| Nullable | Description | Notes |\r\n| :---- | :---- | :---- | :---- | | | |
| :---- |\r\n| **id** | object | No | Anonymised stoppage reason | | |
| identifier. | |\r\n| **description** | object | No | Stoppage reason | | |
| description (e.g. Machine Issue). | |\r\n| **operationId** | object | | | |
| No | Anonymised operation identifier. | |\r\n| **operationName** | | | |
| object | No | Human-readable operation name. | |\r\n| **eventId** | | | |
| object | No | Anonymised stoppage event identifier. | |\r\n| | | |
| **eventStartDate** | object | No | Stoppage event start timestamp. | | | |
| |\r\n| **eventEndDate** | object | No | Stoppage event end timestamp. | | |
| | |\r\n| **eventTimeTrackedInMinutes** | float64 | No | Tracked time | | |
| as recorded by the source system. | |\r\n| **eventDurationMinutes** | | | |
| float64 | No | Duration computed from end \\- start. | |\r\n| | | |
| **itemRoutingOperationId** | object | No | Unique unit-operation | | |
| instance ID. | Link to product\\_cycle. |\r\n| **itemUnit** | object | | | |
| No | Anonymised unit/item identifier. | Link to unitId. |\r\n| | | |
| **Company** | object | No | Anonymised company identifier. | | | |
| |\r\n\r\n## **Suggested Join Keys**\r\n\r\n* **Unit Tracking:** unitId | | |
| \u2194 itemUnit \r\n* **Operation Specifics:** itemRoutingOperationId | | |
| (Best key to connect duration records to specific stoppage events). | | |
| \r\n* **Organisation:** Company \r\n* **Process Step:** | | |
| operationId\r\n\r\n## **Data Quality Notes**\r\n\r\n* **Missing | | |
| Data:** Many records in | | **Missing Data:** Many records in |
| df\\_unit\\_level\\_cycle\\_downtime\\_anonymised.csv have nulls for | | df\\_unit\\_level\\_cycle\\_downtime\\_anonymised.csv have nulls for |
| downtime. This typically indicates zero downtime events occurred for | | downtime. This typically indicates zero downtime events occurred for |
| that unit. \r\n* **Open Orders:** A high percentage (81%) of orders | | that unit. \r\n* **Open Orders:** A high percentage (81%) of orders |
| are currently open. Analysis of these should focus on | | are currently open. Analysis of these should focus on |
| open\\_days\\_late rather than completedDate. \r\n* **Negatives:** | | open\\_days\\_late rather than completedDate. \r\n* **Negatives:** |
| Negative durations in product\\_cycle\\_anonymised.csv (specifically | | Negative durations in product\\_cycle\\_anonymised.csv (specifically |
| in actual duration columns) should be treated as data quality | | in actual duration columns) should be treated as data quality |
| errors.\r\n\r\n**Provenance:** Please record the extract date, source | | errors.\r\n\r\n**Provenance:** Please record the extract date, source |
| system version, and any applied filters (date range, plant, or | | system version, and any applied filters (date range, plant, or |
| operation types) externally to ensure benchmarking is reproducible.", | | operation types) externally to ensure benchmarking is reproducible.", |
| "num_resources": 5, | | "num_resources": 5, |
| "num_tags": 0, | | "num_tags": 0, |
| "organization": { | | "organization": { |
| "approval_status": "approved", | | "approval_status": "approved", |
| "created": "2023-03-20T14:27:38.943709", | | "created": "2023-03-20T14:27:38.943709", |
| "description": "Ulster University has a sustained track record in | | "description": "Ulster University has a sustained track record in |
| robotics, computer vision, and computational intelligence. Translating | | robotics, computer vision, and computational intelligence. Translating |
| research into technologies that catalyse innovation in small and large | | research into technologies that catalyse innovation in small and large |
| enterprises, we have been instrumental in attracting inward investment | | enterprises, we have been instrumental in attracting inward investment |
| and developing the knowledge economy. Ulster lead SMDH, lead the | | and developing the knowledge economy. Ulster lead SMDH, lead the |
| virtual manufacturing platform and contribute to data science, | | virtual manufacturing platform and contribute to data science, |
| roll-out and marketing.", | | roll-out and marketing.", |
| "id": "ef5c8779-8217-40b9-a33a-bf371253343c", | | "id": "ef5c8779-8217-40b9-a33a-bf371253343c", |
| "image_url": "2023-05-02-104737.949700uu.png", | | "image_url": "2023-05-02-104737.949700uu.png", |
| "is_organization": true, | | "is_organization": true, |
| "name": "ulster-university", | | "name": "ulster-university", |
| "state": "active", | | "state": "active", |
| "title": "Ulster University", | | "title": "Ulster University", |
| "type": "organization" | | "type": "organization" |
| }, | | }, |
| "owner_org": "ef5c8779-8217-40b9-a33a-bf371253343c", | | "owner_org": "ef5c8779-8217-40b9-a33a-bf371253343c", |
| "private": false, | | "private": false, |
| "relationships_as_object": [], | | "relationships_as_object": [], |
| "relationships_as_subject": [], | | "relationships_as_subject": [], |
| "resources": [ | | "resources": [ |
| { | | { |
| "cache_last_updated": null, | | "cache_last_updated": null, |
| "cache_url": null, | | "cache_url": null, |
| "cloud_storage_key": | | "cloud_storage_key": |
| ersity/manufacturing-operations-dataset/product_cycle_anonymised.csv", | | ersity/manufacturing-operations-dataset/product_cycle_anonymised.csv", |
| "created": "2026-02-20T17:42:53.412400", | | "created": "2026-02-20T17:42:53.412400", |
| "datastore_active": false, | | "datastore_active": false, |
| "description": "", | | "description": "", |
| "format": "CSV", | | "format": "CSV", |
| "hash": "", | | "hash": "", |
| "id": "95e6e119-d1cf-4af5-953d-03319e214c08", | | "id": "95e6e119-d1cf-4af5-953d-03319e214c08", |
| "last_modified": null, | | "last_modified": null, |
| "metadata_modified": "2026-02-20T17:43:14.758038", | | "metadata_modified": "2026-02-20T17:43:14.758038", |
| "mimetype": null, | | "mimetype": null, |
| "mimetype_inner": null, | | "mimetype_inner": null, |
| "name": "product_cycle_anonymised.csv", | | "name": "product_cycle_anonymised.csv", |
| "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "position": 0, | | "position": 0, |
| "resource_type": null, | | "resource_type": null, |
| "size": 129602146, | | "size": 129602146, |
| "state": "active", | | "state": "active", |
| "url": | | "url": |
| 19-d1cf-4af5-953d-03319e214c08/download/product_cycle_anonymised.csv", | | 19-d1cf-4af5-953d-03319e214c08/download/product_cycle_anonymised.csv", |
| "url_type": "upload" | | "url_type": "upload" |
| }, | | }, |
| { | | { |
| "cache_last_updated": null, | | "cache_last_updated": null, |
| "cache_url": null, | | "cache_url": null, |
| "cloud_storage_key": | | "cloud_storage_key": |
| uring-operations-dataset/df_unit_level_cycle_downtime_anonymised.csv", | | uring-operations-dataset/df_unit_level_cycle_downtime_anonymised.csv", |
| "created": "2026-02-20T17:43:42.271766", | | "created": "2026-02-20T17:43:42.271766", |
| "datastore_active": false, | | "datastore_active": false, |
| "description": "", | | "description": "", |
| "format": "CSV", | | "format": "CSV", |
| "hash": "", | | "hash": "", |
| "id": "aa9b8097-2ac3-47d3-b10d-11ee16f8d2fa", | | "id": "aa9b8097-2ac3-47d3-b10d-11ee16f8d2fa", |
| "last_modified": null, | | "last_modified": null, |
| "metadata_modified": "2026-02-20T17:43:47.115599", | | "metadata_modified": "2026-02-20T17:43:47.115599", |
| "mimetype": null, | | "mimetype": null, |
| "mimetype_inner": null, | | "mimetype_inner": null, |
| "name": "df_unit_level_cycle_downtime_anonymised.csv", | | "name": "df_unit_level_cycle_downtime_anonymised.csv", |
| "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "position": 1, | | "position": 1, |
| "resource_type": null, | | "resource_type": null, |
| "size": 5771255, | | "size": 5771255, |
| "state": "active", | | "state": "active", |
| "url": | | "url": |
| 0d-11ee16f8d2fa/download/df_unit_level_cycle_downtime_anonymised.csv", | | 0d-11ee16f8d2fa/download/df_unit_level_cycle_downtime_anonymised.csv", |
| "url_type": "upload" | | "url_type": "upload" |
| }, | | }, |
| { | | { |
| "cache_last_updated": null, | | "cache_last_updated": null, |
| "cache_url": null, | | "cache_url": null, |
| "cloud_storage_key": | | "cloud_storage_key": |
| rsity/manufacturing-operations-dataset/order_analysis_anonymised.csv", | | rsity/manufacturing-operations-dataset/order_analysis_anonymised.csv", |
| "created": "2026-02-20T17:44:20.958990", | | "created": "2026-02-20T17:44:20.958990", |
| "datastore_active": false, | | "datastore_active": false, |
| "description": "", | | "description": "", |
| "format": "CSV", | | "format": "CSV", |
| "hash": "", | | "hash": "", |
| "id": "4f278ecc-c6b1-49e1-82fb-d89020c217e9", | | "id": "4f278ecc-c6b1-49e1-82fb-d89020c217e9", |
| "last_modified": null, | | "last_modified": null, |
| "metadata_modified": "2026-02-20T17:44:27.463245", | | "metadata_modified": "2026-02-20T17:44:27.463245", |
| "mimetype": null, | | "mimetype": null, |
| "mimetype_inner": null, | | "mimetype_inner": null, |
| "name": "order_analysis_anonymised.csv", | | "name": "order_analysis_anonymised.csv", |
| "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "position": 2, | | "position": 2, |
| "resource_type": null, | | "resource_type": null, |
| "size": 3672626, | | "size": 3672626, |
| "state": "active", | | "state": "active", |
| "url": | | "url": |
| c-c6b1-49e1-82fb-d89020c217e9/download/order_analysis_anonymised.csv", | | c-c6b1-49e1-82fb-d89020c217e9/download/order_analysis_anonymised.csv", |
| "url_type": "upload" | | "url_type": "upload" |
| }, | | }, |
| { | | { |
| "cache_last_updated": null, | | "cache_last_updated": null, |
| "cache_url": null, | | "cache_url": null, |
| "cloud_storage_key": | | "cloud_storage_key": |
| versity/manufacturing-operations-dataset/stoppage_all_anonymised.csv", | | versity/manufacturing-operations-dataset/stoppage_all_anonymised.csv", |
| "created": "2026-02-20T17:44:57.420303", | | "created": "2026-02-20T17:44:57.420303", |
| "datastore_active": false, | | "datastore_active": false, |
| "description": "", | | "description": "", |
| "format": "CSV", | | "format": "CSV", |
| "hash": "", | | "hash": "", |
| "id": "b1d76f6b-359d-483a-958c-4e73c8d09863", | | "id": "b1d76f6b-359d-483a-958c-4e73c8d09863", |
| "last_modified": null, | | "last_modified": null, |
| "metadata_modified": "2026-02-20T17:45:07.858709", | | "metadata_modified": "2026-02-20T17:45:07.858709", |
| "mimetype": null, | | "mimetype": null, |
| "mimetype_inner": null, | | "mimetype_inner": null, |
| "name": "stoppage_all_anonymised.csv", | | "name": "stoppage_all_anonymised.csv", |
| "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "position": 3, | | "position": 3, |
| "resource_type": null, | | "resource_type": null, |
| "size": 1960373, | | "size": 1960373, |
| "state": "active", | | "state": "active", |
| "url": | | "url": |
| f6b-359d-483a-958c-4e73c8d09863/download/stoppage_all_anonymised.csv", | | f6b-359d-483a-958c-4e73c8d09863/download/stoppage_all_anonymised.csv", |
| "url_type": "upload" | | "url_type": "upload" |
| }, | | }, |
| { | | { |
| "cache_last_updated": null, | | "cache_last_updated": null, |
| "cache_url": null, | | "cache_url": null, |
| "cloud_storage_key": | | "cloud_storage_key": |
| "1/ulster-university/manufacturing-operations-dataset/Manufacturing | | "1/ulster-university/manufacturing-operations-dataset/Manufacturing |
| Operations Documentation.pdf", | | Operations Documentation.pdf", |
| "created": "2026-02-20T17:46:21.616885", | | "created": "2026-02-20T17:46:21.616885", |
| "datastore_active": false, | | "datastore_active": false, |
| "description": "", | | "description": "", |
| "format": "PDF", | | "format": "PDF", |
| "hash": "", | | "hash": "", |
| "id": "71d6ab22-6ac1-4cc8-af9d-03ab24d20a09", | | "id": "71d6ab22-6ac1-4cc8-af9d-03ab24d20a09", |
| "last_modified": null, | | "last_modified": null, |
| "metadata_modified": "2026-02-20T17:46:30.454309", | | "metadata_modified": "2026-02-20T17:46:30.454309", |
| "mimetype": null, | | "mimetype": null, |
| "mimetype_inner": null, | | "mimetype_inner": null, |
| "name": "Manufacturing Operations Documentation.pdf", | | "name": "Manufacturing Operations Documentation.pdf", |
| "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", | | "package_id": "8ddb1432-fa3a-4173-a46c-915fe230e08e", |
| "position": 4, | | "position": 4, |
| "resource_type": null, | | "resource_type": null, |
| "size": 128114, | | "size": 128114, |
| "state": "active", | | "state": "active", |
| "url": | | "url": |
| f9d-03ab24d20a09/download/manufacturing-operations-documentation.pdf", | | f9d-03ab24d20a09/download/manufacturing-operations-documentation.pdf", |
| "url_type": "upload" | | "url_type": "upload" |
| } | | } |
| ], | | ], |
| "share_internally": false, | | "share_internally": false, |
| "state": "active", | | "state": "active", |
| "tags": [], | | "tags": [], |
| "title": "Manufacturing Operations Dataset", | | "title": "Manufacturing Operations Dataset", |
| "type": "dataset", | | "type": "dataset", |
| "url": "", | | "url": "", |
| "version": "" | | "version": "" |
| } | | } |