Skip to content
Back to skills

Ab Test Analyzer With Cloud Action

ASecurity

When the user requests analysis of A/B test results from BigQuery data to determine a winner and execute cloud-based actions based on the outcome. This skill handles 1) Querying and analyzing clickstream data from BigQuery datasets, 2) Calculating conversion rates across multiple scenarios, 3) Determining the winner based on arithmetic mean of per-scenario rates, 4) Filling CSV reports with results, 5) Executing conditional cloud operations - creating Cloud Storage buckets when version B wins...

  • 8 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 29, 2026
businessgotesting

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 29, 2026

npx -y skills add zjunlp/Skills --skill ab-test-analyzer-with-cloud-action --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ab Test Analyzer With Cloud Action?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ab Test Analyzer With Cloud Action
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/zjunlp-ab-test-analyzer-with-cloud-action/badge)](https://www.skillsdirectory.com/skills/zjunlp-ab-test-analyzer-with-cloud-action)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ab-test-analyzer-with-cloud-action
description: When the user requests analysis of A/B test results from BigQuery data to determine a winner and execute cloud-based actions based on the outcome. This skill handles 1) Querying and analyzing clickstream data from BigQuery datasets, 2) Calculating conversion rates across multiple scenarios, 3) Determining the winner based on arithmetic mean of per-scenario rates, 4) Filling CSV reports with results, 5) Executing conditional cloud operations - creating Cloud Storage buckets when version B wins or writing log entries when version A wins or ties. Triggers include A/B test analysis, conversion rate comparison, BigQuery clickstream data, conditional cloud operations, CSV report generation.
---
# Instructions

## 1. Understand the Task
The user will provide a request to analyze concluded A/B test data. The raw clickstream data is stored in a BigQuery dataset named `ab_testing`. You must:
- Analyze the data to determine which version ('A' or 'B') has the highest overall conversion rate.
- The **overall conversion rate** is defined as the **arithmetic mean of the per-scenario conversion rates**.
- Fill a CSV report file (`record.csv`) with the results.
- Execute a conditional cloud action based on the winner:
    - **If version B wins**: Create a new Cloud Storage bucket whose name is prefixed with `promo-assets-for-b`. Do NOT write any log entry.
    - **If version A wins or it's a tie**: Write a log entry with the message `{'status': 'AB_Test_Concluded', 'winner': 'A', 'action': 'No_Change'}` to the existing log bucket whose name is prefixed with `abtesting_logging`. Do NOT create a bucket.
- Ignore any log entries that existed in the log bucket before the task started.

## 2. Core Workflow

### Phase 1: Data Discovery & Inspection
1.  **Locate the Dataset**: Use `google-cloud-bigquery_get_dataset_info` to confirm the `ab_testing` dataset exists and note its project ID (e.g., `toolathlon-eval-ds`).
2.  **Inspect the CSV Template**: Read the provided `record.csv` file using `filesystem-read_file` to understand the required output schema (list of scenarios).
3.  **List Available Tables**: Query the dataset's `INFORMATION_SCHEMA.TABLES` to get all table names. Expect tables named like `ab_<Scenario>` (e.g., `ab_Appliances`, `ab_Automotive`).
4.  **Examine Table Structure**: Sample one table (e.g., `ab_Appliances`) to confirm it contains columns: `time_window`, `A_clicks`, `A_store_views`, `B_clicks`, `B_store_views`.

### Phase 2: Data Aggregation & Calculation
1.  **Aggregate Data Per Scenario**: For each scenario table, run a query to sum `A_clicks`, `A_store_views`, `B_clicks`, and `B_store_views`.
    - **Efficient Method**: Use the bundled script `scripts/aggregate_data.py`. It dynamically constructs and executes a single, efficient query.
    - **Manual Method**: If the script fails, construct a UNION ALL query manually for all scenarios, similar to the trajectory.
2.  **Calculate Conversion Rates**: For each scenario row:
    - `A_conversion %` = (`A_store_views` / `A_clicks`) * 100 (handle division by zero).
    - `B_conversion %` = (`B_store_views` / `B_clicks`) * 100.
    - Round results to 2 decimal places.
3.  **Calculate Overall Rates**:
    - **Per-Scenario Mean (Primary Metric)**: Calculate the arithmetic mean (average) of all `A_conversion %` values and all `B_conversion %` values separately. This determines the winner.
    - **Aggregate Rate (For CSV)**: Also calculate `total_A_store_views / total_A_clicks * 100` and `total_B_store_views / total_B_clicks * 100` for the "overall (total_store_views/total_clicks)" row in the CSV.

### Phase 3: Reporting & Conditional Action
1.  **Populate the CSV**: Write the calculated `A_conversion %` and `B_conversion %` for each scenario, plus the aggregate rate row, to `record.csv`. Ensure the scenario order matches the original template.
2.  **Determine Winner**: Compare the arithmetic means from Step 2.3.
    - `B_mean > A_mean`: **Version B wins**.
    - `A_mean > B_mean` or `A_mean == B_mean`: **Version A wins or it's a tie**.
3.  **Execute Conditional Action**:
    - **If B Wins**:
        - Generate a unique bucket name starting with `promo-assets-for-b` (e.g., `promo-assets-for-b-full-promotion`).
        - Use `google-cloud-storage_create_bucket` to create it in the `US` location.
        - **Do not** write any log entry.
    - **If A Wins or Tie**:
        - Find the existing log bucket by listing buckets and identifying one with a name prefixed `abtesting_logging`.
        - Create a log object inside it (e.g., `log_<timestamp>.txt`) containing the exact string: `{'status': 'AB_Test_Concluded', 'winner': 'A', 'action': 'No_Change'}`.
        - **Do not** create a new storage bucket.

## 3. Key Rules & Edge Cases
- **Winner Criteria**: The decisive metric is the **arithmetic mean of per-scenario conversion rates**, not the aggregate `total_views/total_clicks` rate.
- **Log Handling**: When writing a log, you must **not** read, parse, or consider any existing objects in the log bucket. Simply write the new log entry.
- **Bucket Naming**: The new bucket name must **start with** `promo-assets-for-b`. Append a descriptive suffix (e.g., `-full-promotion`) to ensure uniqueness.
- **Data Integrity**: Verify all 20 scenario tables are processed. The final CSV must have 21 rows (20 scenarios + 1 overall row).
- **Error Handling**: If BigQuery queries fail, check table names and permissions. If the log bucket cannot be found when needed, inform the user.

## 4. Final Verification
Before claiming completion:
1.  Confirm `record.csv` is correctly formatted and saved.
2.  Verify the correct cloud action was taken (bucket created OR log entry written).
3.  Provide a brief summary to the user stating the winner (A/B/Tie), the calculated mean rates, and the action taken.

Files in this skill

  • SKILL.md5.7 KB
  • references/schema_and_calculations.md2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…