Skip to content

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
  • date, shift, rework_count

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
  • reason, rework_count, pct_of_total

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
  • date, shift, total_produced, rework_count, rework_rate_pct

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
  • part_number, rework_count, cost_per_rework, total_cost

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
  • period, rework_count