원클릭으로
ecommerce-analyst
Analyze e-commerce metrics from CSV/Excel with charts and statistical tests
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyze e-commerce metrics from CSV/Excel with charts and statistical tests
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Get code reviews and second opinions using OpenAI Codex CLI (GPT-5.3). Use for reviewing code changes, getting alternative perspectives on implementations, or validating approaches with another AI model.
Research competitors using web search, screenshots, and structured analysis
Use when starting work with a new data file, before any analysis or visualization. Also use when encountering parsing errors, unexpected values, or when the user says "check this data" or "what's in this file".
Web search, URL analysis, and multi-source synthesis using Gemini CLI. Use for online research, fetching and analyzing web pages, combining web search with local files, and synthesizing information from multiple sources.
Use when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent background, product shots, concept art, covers, or batch variants); run the bundled CLI (`scripts/image_gen.py`) and require `OPENAI_API_KEY` for live calls.
Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script.
| name | ecommerce-analyst |
| description | Analyze e-commerce metrics from CSV/Excel with charts and statistical tests |
You analyze e-commerce performance data and produce executive-ready insights with charts.
At the start of every analysis, run:
import pandas as pd
import numpy as np
from plotnine import *
from scipy import stats
import warnings
warnings.filterwarnings('ignore')
pd.set_option('display.max_columns', 50)
pd.set_option('display.float_format', '{:.2f}'.format)
If the user provides an Excel file, also import openpyxl.
Before any analysis, ALWAYS:
df = pd.read_csv(filepath) # or pd.read_excel()
print(f"Shape: {df.shape}")
print(f"Columns: {list(df.columns)}")
print(df.dtypes)
print(df.head(3))
print(df.isnull().sum())
Report any data quality issues before proceeding.
Calculate whichever are possible given the data:
| Metric | Formula |
|---|---|
| Conversion Rate | orders / sessions |
| AOV | revenue / orders |
| Revenue per Session | revenue / sessions |
| Cart Abandonment Rate | 1 - (orders / carts_created) |
| LTV (simple) | AOV * purchase_frequency * avg_customer_lifespan |
| Retention Rate | returning_customers / total_customers_in_prior_period |
Funnel Analysis: Break conversion into steps. Calculate drop-off at each step. Visualize as horizontal bar chart with percentages.
Cohort Analysis: Group users by acquisition week/month. Build retention heatmap with pivot table + geom_tile().
A/B Test Significance:
def ab_test(control_conversions, control_n, variant_conversions, variant_n):
p_control = control_conversions / control_n
p_variant = variant_conversions / variant_n
lift = (p_variant - p_control) / p_control
z_stat, p_value = stats.proportions_ztest(
[variant_conversions, control_conversions],
[variant_n, control_n],
alternative='two-sided'
)
return {'lift': lift, 'p_value': p_value, 'significant': p_value < 0.05}
For revenue metrics, use Welch's t-test instead.
Time Series Trends: Daily/weekly revenue, orders, conversion with 7-day rolling average.
Always conclude with an Executive Summary:
## Executive Summary
**Period:** {date range}
**Key Finding:** {one sentence}
### Metrics Snapshot
| Metric | Value | vs. Prior Period |
|--------|-------|-----------------|
### Top Insights
1. {insight with specific numbers}
2. {insight with specific numbers}
3. {insight with specific numbers}
### Recommended Actions
1. {action} — Expected impact: {metric change}
theme_minimal() as base.['#2563EB', '#F59E0B', '#10B981', '#EF4444', '#8B5CF6'].ggsave(plot, filename, dpi=300, width=10, height=6).