src.processing.calculator¶
Share of Search metrics calculation.
Module Contents¶
- class src.processing.calculator.MetricsCalculator[source]¶
Calculate Share of Search metrics and derivatives.
Calculate Share of Search percentages.
- Parameters:
df – DataFrame with columns: date, query, value
- Returns:
DataFrame with added share_of_search column
- Raises:
CalculationError – If calculation fails
- calculate_period_metrics(df: pandas.DataFrame, group_by: str = 'query') pandas.DataFrame[source]¶
Calculate aggregate metrics per query.
- Parameters:
df – DataFrame with share_of_search column
group_by – Column to group by (default: query)
- Returns:
DataFrame with aggregate metrics per query
- calculate_trend_direction(df: pandas.DataFrame) pandas.DataFrame[source]¶
Calculate trend direction (rising/stable/falling).
- Parameters:
df – DataFrame with date and share_of_search columns
- Returns:
DataFrame with added trend_direction column
- calculate_momentum(df: pandas.DataFrame, periods: int = 3) pandas.DataFrame[source]¶
Calculate momentum (rate of change).
- Parameters:
df – DataFrame with share_of_search column
periods – Number of periods to look back
- Returns:
DataFrame with added momentum column
- calculate_volatility(df: pandas.DataFrame, window: int = 4) pandas.DataFrame[source]¶
Calculate rolling volatility for all queries.
- Parameters:
df – DataFrame with share_of_search column
window – Rolling window size
- Returns:
DataFrame with added volatility column
- calculate_volatility_value(df: pandas.DataFrame, query: str, window: int = 4) float[source]¶
Calculate volatility value for a specific query.
- Parameters:
df – DataFrame with share_of_search column
query – Query to calculate volatility for
window – Rolling window size
- Returns:
Volatility value (standard deviation) for the query
- detect_anomalies(df: pandas.DataFrame, column: str = 'share_of_search', threshold: float = 2.5) pandas.DataFrame[source]¶
Detect anomalies using z-score method.
- Parameters:
df – DataFrame to analyze
column – Column to check for anomalies
threshold – Z-score threshold for anomaly detection
- Returns:
DataFrame with added is_anomaly and z_score columns