rework_tracking
rework_tracking ¤
Rework tracking for parts requiring re-processing.
Track rework events and their impact: - Rework count by shift - Rework by reason code - Rework rate as percentage of production - Rework cost estimation - Rework trends over time
ReworkTracking ¤
ReworkTracking(
dataframe: DataFrame,
*,
time_column: str = "systime",
shift_definitions: Optional[
Dict[str, tuple[str, str]]
] = None
)
Bases: Base
Track parts that require rework (re-processing through a station).
Each UUID represents one signal: - rework_uuid: rework event counter (monotonic integer) - reason_uuid: rework reason code signal (optional) - total_production_uuid: total production counter (optional) - part_id_uuid: part number / product type signal (optional)
Merge keys: [date, shift] for shift-level, [period] for trend, [reason] for reason-level, [part_number] for part-level.
Pipeline example::
rework = ReworkTracking(df)
shift_rework = rework.rework_by_shift('rework_counter')
# → merge with ShiftReporting.shift_production() on [date, shift]
# → merge with QualityTracking.nok_by_shift() on [date, shift]
rate = rework.rework_rate('rework_counter', 'total_counter')
# → merge with ShiftReporting.shift_production() on [date, shift]
Example usage
tracker = ReworkTracking(df)
Rework per shift¤
shift_rework = tracker.rework_by_shift(rework_uuid='rework_counter')
Rework rate¤
rate = tracker.rework_rate( rework_uuid='rework_counter', total_production_uuid='total_counter', )
rework_by_shift ¤
rework_by_shift(
rework_uuid: str, *, value_column: str = "value_integer"
) -> pd.DataFrame
Rework count per shift.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rework_uuid
|
str
|
UUID for rework event counter signal. |
required |
value_column
|
str
|
Column containing counter values. |
'value_integer'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
rework_by_reason ¤
rework_by_reason(
rework_uuid: str,
reason_uuid: str,
*,
value_column_rework: str = "value_integer",
value_column_reason: str = "value_string"
) -> pd.DataFrame
Rework quantity by reason code.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rework_uuid
|
str
|
UUID for rework counter signal. |
required |
reason_uuid
|
str
|
UUID for rework reason code signal. |
required |
value_column_rework
|
str
|
Column containing rework counter values. |
'value_integer'
|
value_column_reason
|
str
|
Column containing reason codes. |
'value_string'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
rework_rate ¤
rework_rate(
rework_uuid: str,
total_production_uuid: str,
*,
value_column_rework: str = "value_integer",
value_column_production: str = "value_integer"
) -> pd.DataFrame
Rework rate as percentage of total production per shift.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rework_uuid
|
str
|
UUID for rework counter signal. |
required |
total_production_uuid
|
str
|
UUID for total production counter signal. |
required |
value_column_rework
|
str
|
Column containing rework counter values. |
'value_integer'
|
value_column_production
|
str
|
Column containing production counter values. |
'value_integer'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
rework_cost ¤
rework_cost(
rework_uuid: str,
part_id_uuid: str,
rework_costs: Dict[str, float],
*,
value_column_rework: str = "value_integer",
value_column_part: str = "value_string"
) -> pd.DataFrame
Convert rework counts to monetary cost by part number.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rework_uuid
|
str
|
UUID for rework counter signal. |
required |
part_id_uuid
|
str
|
UUID for part number / product type signal. |
required |
rework_costs
|
Dict[str, float]
|
Dict mapping part numbers to cost per rework. |
required |
value_column_rework
|
str
|
Column containing rework counter values. |
'value_integer'
|
value_column_part
|
str
|
Column containing part number values. |
'value_string'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
rework_trend ¤
rework_trend(
rework_uuid: str,
*,
value_column: str = "value_integer",
window: str = "1D"
) -> pd.DataFrame
Track rework count trend over time.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
rework_uuid
|
str
|
UUID for rework counter signal. |
required |
value_column
|
str
|
Column containing counter values. |
'value_integer'
|
window
|
str
|
Time window for aggregation (default '1D'). |
'1D'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|