ワンクリックで
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).