Skip to content

lead_time_analysis

lead_time_analysis ¤

Lead time analysis events for supply chain timeseries.

Matches order events to delivery events, computes lead time statistics, and detects anomalous lead times.

LeadTimeAnalysisEvents ¤

LeadTimeAnalysisEvents(
    dataframe: DataFrame,
    *,
    event_uuid: str = "sc:lead_time",
    time_column: str = "systime"
)

Bases: Base

Analyze lead times between order placement and delivery in timeseries data.

Order and delivery events are identified by separate UUIDs. They are paired sequentially (first order to first delivery, etc.).

Example usage

analyzer = LeadTimeAnalysisEvents(df) lead_times = analyzer.calculate_lead_times('order_signal', 'delivery_signal') stats = analyzer.lead_time_statistics('order_signal', 'delivery_signal') anomalies = analyzer.detect_lead_time_anomalies('order_signal', 'delivery_signal')

Initialize lead time analyzer.

Parameters:

Name Type Description Default
dataframe DataFrame

Input DataFrame with timeseries data.

required
event_uuid str

UUID assigned to generated events.

'sc:lead_time'
time_column str

Name of timestamp column.

'systime'

calculate_lead_times ¤

calculate_lead_times(
    order_uuid: str,
    delivery_uuid: str,
    value_column: str = "value_string",
) -> pd.DataFrame

Match order events to delivery events by sequential pairing.

The first order is paired with the first delivery, and so on. The value_column is used as an order identifier (e.g. PO number).

Parameters:

Name Type Description Default
order_uuid str

UUID of the order placement signal.

required
delivery_uuid str

UUID of the delivery received signal.

required
value_column str

Column containing order identifiers.

'value_string'

Returns:

Type Description
DataFrame

DataFrame with columns: order_time, delivery_time, uuid, is_delta,

DataFrame

lead_time_seconds, lead_time_hours, order_id.

lead_time_statistics ¤

lead_time_statistics(
    order_uuid: str,
    delivery_uuid: str,
    value_column: str = "value_string",
) -> pd.DataFrame

Compute summary statistics of lead times.

Parameters:

Name Type Description Default
order_uuid str

UUID of the order placement signal.

required
delivery_uuid str

UUID of the delivery received signal.

required
value_column str

Column containing order identifiers.

'value_string'

Returns:

Type Description
DataFrame

Single-row DataFrame with columns: mean_hours, std_hours,

DataFrame

min_hours, max_hours, p95_hours, count.

detect_lead_time_anomalies ¤

detect_lead_time_anomalies(
    order_uuid: str,
    delivery_uuid: str,
    threshold_factor: float = 2.0,
    value_column: str = "value_string",
) -> pd.DataFrame

Flag lead times exceeding mean + threshold_factor * std.

Parameters:

Name Type Description Default
order_uuid str

UUID of the order placement signal.

required
delivery_uuid str

UUID of the delivery received signal.

required
threshold_factor float

Number of standard deviations above mean to flag as anomalous.

2.0
value_column str

Column containing order identifiers.

'value_string'

Returns:

Type Description
DataFrame

DataFrame with columns: order_time, delivery_time, uuid, is_delta,

DataFrame

lead_time_hours, z_score.