Skip to content

target_tracking

target_tracking ¤

Target vs actual comparison module.

Generic module for comparing any metric to targets: - Shift/daily target comparison - Variance analysis - Target achievement tracking over time

TargetTracking ¤

TargetTracking(
    dataframe: DataFrame,
    *,
    time_column: str = "systime",
    shift_definitions: Optional[
        Dict[str, tuple[str, str]]
    ] = None
)

Bases: Base

Compare any production metric to targets.

Every plant has daily/shift targets. This module provides a generic way to compare actual performance against those targets.

Merge keys: [date, shift] for shift-level, [date] for daily.

Pipeline example::

target = TargetTracking(df)
result = target.compare_to_target('counter', {'shift_1': 450})
# → merge with PerformanceLossTracking.performance_by_shift() on [date, shift]
# → merge with QualityTracking.nok_by_shift() on [date, shift]
# → result['status'] column enables filtering/alerting
Example usage

tracker = TargetTracking(df)

Compare counter to fixed target¤

result = tracker.compare_to_target( metric_uuid='production_counter', targets={'shift_1': 450, 'shift_2': 450, 'shift_3': 400}, )

Achievement summary over time¤

summary = tracker.target_achievement_summary( metric_uuid='production_counter', daily_target=1300, )

compare_to_target ¤

compare_to_target(
    metric_uuid: str,
    targets: Dict[str, float],
    *,
    value_column: str = "value_integer"
) -> pd.DataFrame

Compare actual metric to per-shift targets.

Parameters:

Name Type Description Default
metric_uuid str

UUID of the metric signal (counter).

required
targets Dict[str, float]

Dict mapping shift names to target values.

required
value_column str

Column containing metric values.

'value_integer'

Returns:

Type Description
DataFrame

DataFrame with columns:

DataFrame
  • date, shift, actual, target, variance, achievement_pct, status

target_achievement_summary ¤

target_achievement_summary(
    metric_uuid: str,
    daily_target: float,
    *,
    value_column: str = "value_integer"
) -> pd.DataFrame

Summarize target achievement over time.

Parameters:

Name Type Description Default
metric_uuid str

UUID of the metric signal (counter).

required
daily_target float

Daily production target.

required
value_column str

Column containing metric values.

'value_integer'

Returns:

Type Description
DataFrame

DataFrame with columns:

DataFrame
  • date, actual, target, variance, achievement_pct, status

target_hit_rate ¤

target_hit_rate(
    metric_uuid: str,
    daily_target: float,
    *,
    value_column: str = "value_integer"
) -> Dict[str, Union[float, int]]

How often are targets met?

Parameters:

Name Type Description Default
metric_uuid str

UUID of the metric signal (counter).

required
daily_target float

Daily production target.

required
value_column str

Column containing metric values.

'value_integer'

Returns:

Type Description
Dict[str, Union[float, int]]

Dict with:

Dict[str, Union[float, int]]
  • total_days: Number of days analyzed.
Dict[str, Union[float, int]]
  • days_on_target: Days where target was met.
Dict[str, Union[float, int]]
  • hit_rate_pct: Percentage of days meeting target.
Dict[str, Union[float, int]]
  • avg_achievement_pct: Average achievement across days.