Skip to content

Guides¤

From raw signals to production KPIs — follow the data through the plant.


Plant Data Pipeline¤

Every manufacturing analysis follows the same flow. ts-shape mirrors this with dedicated modules at each stage.

flowchart LR
    subgraph ACQ["<b>Data Acquisition</b>"]
        direction TB
        A1["Parquet / S3 / Azure"]
        A2["TimescaleDB"]
        A3["Metadata JSON"]
    end

    subgraph COND["<b>Signal Conditioning</b>"]
        direction TB
        B1["Numeric Filter"]
        B2["DateTime Filter"]
        B3["Timezone Shift"]
        B4["Calculations"]
    end

    subgraph ANA["<b>Signal Analytics</b>"]
        direction TB
        C1["Statistics"]
        C2["Cycle Extraction"]
        C3["Pattern Recognition"]
    end

    subgraph EVT["<b>Event Detection</b>"]
        direction TB
        D1["Quality & SPC"]
        D2["Production Monitoring"]
        D3["OEE & Plant Analytics"]
        D4["Traceability"]
        D5["Process Engineering"]
    end

    subgraph RPT["<b>Reporting</b>"]
        direction TB
        E1["Shift Handover"]
        E2["Period Summary"]
        E3["Target Tracking"]
    end

    ACQ --> COND --> ANA --> EVT --> RPT

    style ACQ fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe
    style COND fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe
    style ANA fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe
    style EVT fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe
    style RPT fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe

Guide Index¤

Pick the stage that matches where you are in your analysis.

  • Data Acquisition


    Connect to historians, data lakes, and metadata stores. Load Parquet, S3, Azure Blob, or TimescaleDB into DataFrames.

    ParquetLoader | AzureBlobParquetLoader | S3ProxyParquetLoader | MetadataLoader | DataIntegratorHybrid

  • Signal Conditioning


    Clean and prepare raw signals. Filter by range, time window, pattern, or boolean flag. Convert timezones and compute derived values.

    NumericFilter | DateTimeFilter | StringFilter | TimezoneShift | NumericCalc

  • Signal Analytics


    Compute descriptive statistics, extract process cycles, and detect patterns across signals.

    NumericStatistics | TimestampStatistics | CycleExtractor | PatternRecognition

  • Quality Control & SPC


    Outlier detection (Z-score, IQR, MAD, IsolationForest), Western Electric Rules, CUSUM shifts, and Cp/Cpk capability indices.

    OutlierDetection | StatisticalProcessControl | ToleranceDeviation

  • Production Monitoring


    Machine states, line throughput, changeovers, downtime, cycle times, shift reporting, and quality tracking on the shop floor.

    MachineStateEvents | DowntimeTracking | ShiftReporting | CycleTimeTracking | +5 more

  • OEE & Plant Analytics


    Overall Equipment Effectiveness, alarm management (ISA-18.2), batch tracking, bottleneck detection, micro-stops, and duty cycles.

    OEECalculator | AlarmManagementEvents | BatchTrackingEvents | BottleneckDetectionEvents | +2 more

  • Product Traceability


    Track parts through single stations, multi-step routings, or parallel process lines. Lead times, station dwell, and routing analysis.

    ValueTraceabilityEvents | RoutingTraceabilityEvents | MultiProcessTraceabilityEvents

  • Process Engineering


    Setpoint change analysis with control quality KPIs (settling time, rise time, overshoot). Startup detection across machines.

    SetpointChangeEvents | StartupDetectionEvents

  • Shift Reports & KPIs


    Performance loss, scrap costs, target tracking, setup time (SMED), operator comparison, rework analysis, and auto-generated shift handover reports.

    PerformanceLossTracking | ScrapTracking | TargetTracking | SetupTimeTracking | +4 more


How the Modules Connect¤

In a real plant, signals flow between systems. ts-shape classes connect the same way — outputs from one class become inputs to another.

flowchart TB
    subgraph FLOOR["<b>Shop Floor Signals</b>"]
        S1["Machine State<br/><i>run / idle / setup</i>"]
        S2["Part Counter<br/><i>integer increments</i>"]
        S3["Part ID<br/><i>string signal</i>"]
        S4["Quality Flag<br/><i>OK / NOK</i>"]
    end

    subgraph EVENTS["<b>Event Detection</b>"]
        MS["MachineStateEvents"]
        LT["LineThroughputEvents"]
        CO["ChangeoverEvents"]
    end

    subgraph TRACKING["<b>Daily Tracking</b>"]
        PT["PartProductionTracking"]
        DT["DowntimeTracking"]
        CT["CycleTimeTracking"]
        QT["QualityTracking"]
    end

    subgraph KPI["<b>KPIs & Reports</b>"]
        OEE["OEECalculator"]
        SR["ShiftReporting"]
        SH["ShiftHandoverReport"]
    end

    S1 --> MS
    S2 --> LT
    S3 --> CO
    S4 --> QT

    MS -->|"run/idle intervals"| DT
    LT -->|"part counts"| PT
    CO -->|"product changes"| CT

    DT -->|"availability"| OEE
    PT -->|"performance"| OEE
    QT -->|"quality rate"| OEE

    DT -->|"date, shift"| SR
    PT -->|"date, shift"| SR
    QT -->|"date, shift"| SR

    SR --> SH

    style FLOOR fill:#0f2a3d,stroke:#38bdf8,color:#e0f2fe
    style EVENTS fill:#1a3a4a,stroke:#2dd4bf,color:#e0f2fe
    style TRACKING fill:#1a3a4a,stroke:#f59e0b,color:#fef3c7
    style KPI fill:#1a3a4a,stroke:#ef4444,color:#fecaca

Merge Keys

Classes connect through shared DataFrame columns: date, shift, part_number, uuid. When one class produces a column, the next class can join on it. See each guide for specific merge key documentation.