This skill should be used when analyzing business sales and revenue data from CSV files to identify weak areas, generate statistical insights, and provide strategic improvement recommendations. Use when the user requests a business performance report, asks to analyze sales data, wants to identify areas of weakness, or needs recommendations on business improvement strategies.
npx skills add https://github.com/ailabs-393/ai-labs-claude-skills --skill business-analytics-reporter
Generate comprehensive business performance reports that analyze sales and revenue data, identify areas where the business is lacking, interpret what the statistics indicate, and provide actionable improvement strategies. The skill uses data-driven analysis to detect weak areas and recommends specific strategies backed by business frameworks.
Invoke this skill when users request:
The skill expects CSV files containing business data (sales, revenue, transactions) with columns like dates, amounts, categories, or products.
Start by understanding the data structure and what the user wants to analyze.
Ask clarifying questions if needed:
Load and explore the data:
import pandas as pd
# Load the CSV file
df = pd.read_csv('business_data.csv')
# Display basic information
print(f"Data shape: {df.shape}")
print(f"Columns: {df.columns.tolist()}")
print(f"Date range: {df['date'].min()} to {df['date'].max()}")
print(df.head())
Use the bundled analysis script to generate comprehensive insights:
python scripts/analyze_business_data.py path/to/business_data.csv output_report.json
The script will:
Output structure:
{
"metadata": {...},
"findings": {
"basic_statistics": {...},
"trend_analysis": {...},
"category_analysis": {...},
"variability": {...}
},
"weak_areas": [...],
"improvement_strategies": [...]
}
Read the generated JSON report and interpret the findings for the user in plain language.
Focus on:
Example interpretation:
Based on the analysis of your sales data from January to December 2024:
Current State:
- Total revenue: $1.2M with average monthly revenue of $100K
- Average growth rate: -3.5% indicating declining performance
- Revenue stability: High volatility (CV: 58%) suggesting inconsistent performance
Weak Areas Identified:
1. Revenue Growth (High Severity): Negative average growth rate of -3.5%
2. Performance Consistency (Medium Severity): 45% of periods show declining performance
3. Category Performance (Medium Severity): 4 underperforming categories identified
Consult the business frameworks reference to provide strategic recommendations:
Load business frameworks for context:
Refer to references/business_frameworks.md for:
Structure recommendations as:
For each identified weak area, provide:
Example recommendation:
Strategy: Revenue Acceleration Program
Area: Revenue Growth
Objective: Reverse negative growth trend and achieve 10%+ monthly growth
Key Actions:
1. Implement aggressive customer acquisition campaigns
2. Review and optimize pricing strategy
3. Launch upselling and cross-selling initiatives
4. Expand into new market segments or geographies
5. Accelerate product development and innovation
Expected Impact: High
Timeline: 3-6 months
Success Metrics: Monthly revenue growth rate, new customer acquisition, ARPU increase
If requested, create interactive visualizations using Plotly to illustrate findings:
Consult visualization guide:
Refer to references/visualization_guide.md for:
Common visualizations to create:
Example code for revenue trend:
import plotly.graph_objects as go
from plotly.subplots import make_subplots
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add revenue line
fig.add_trace(
go.Scatter(x=df['date'], y=df['revenue'], name="Revenue",
line=dict(color='blue', width=3)),
secondary_y=False
)
# Add growth rate line
fig.add_trace(
go.Scatter(x=df['date'], y=df['growth_rate'], name="Growth Rate",
line=dict(color='green', dash='dash')),
secondary_y=True
)
fig.update_layout(title_text="Revenue Performance & Growth Rate")
fig.show()
Compile findings into a comprehensive report format.
Option A: Generate HTML Report
Use the report template from assets/report_template.html:
# Read the template
with open('assets/report_template.html', 'r') as f:
template = f.read()
# Load analysis results
with open('output_report.json', 'r') as f:
analysis = json.load(f)
# Populate the template with actual data
# Replace placeholders with real values from analysis
# Add Plotly charts as JavaScript
# Save as final HTML report
with open('business_report.html', 'w') as f:
f.write(populated_template)
The HTML template includes:
Option B: Generate Markdown Report
Create a structured markdown document:
# Business Performance Analysis Report
**Generated:** [Date]
**Data Period:** [Period]
## Executive Summary
[Brief overview of findings]
## Key Metrics
- Total Revenue: $X
- Average Growth Rate: X%
- Revenue Stability: [Assessment]
- Weak Areas Identified: X
## Performance Trends
[Insert chart or describe trends]
## Areas of Weakness
### 1. [Weak Area Name] (Severity)
**Finding:** [Description]
**Impact:** [Business impact]
### 2. [Next weak area...]
## Strategic Recommendations
### Strategy 1: [Name]
**Objective:** [Goal]
**Actions:**
- [Action 1]
- [Action 2]
...
**Expected Impact:** High/Medium/Low
**Timeline:** X months
The analysis script calculates the following metrics automatically:
When generating recommendations, leverage the frameworks documented in references/business_frameworks.md:
Match identified weak areas with appropriate strategic frameworks to provide contextually relevant recommendations.
The analysis automatically detects these common business problems:
| Weak Area | Detection Criteria | Typical Root Causes |
|-----------|-------------------|---------------------|
| Revenue Growth | Negative average growth rate | Market saturation, increased competition, poor positioning |
| Performance Consistency | >40% declining periods | Lack of recurring revenue, seasonal dependency |
| Revenue Stability | CV > 50% | Customer concentration, volatile demand |
| Category Performance | Categories in bottom 25% | Poor product-market fit, pricing issues, low awareness |
User request: "Analyze my Q4 sales data and tell me where we're weak and how to improve"
Workflow:
df = pd.read_csv('q4_sales.csv')python scripts/analyze_business_data.py q4_sales.csv q4_report.jsonwith open('q4_report.json') as f: report = json.load(f)references/visualization_guide.md)assets/report_template.htmlreferences/business_frameworks.mdExpected output:
analyze_business_data.py: Automated analysis engine that detects data structure, calculates metrics, identifies weak areas, and generates improvement strategiesbusiness_frameworks.md: Comprehensive guide to business strategy frameworks, common weak areas, and solution templatesvisualization_guide.md: Chart type recommendations, Plotly code examples, and dashboard design best practicesreport_template.html: Professional HTML template with interactive visualizations, styled cards for weak areas and strategies, and print-ready formattingComprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \"the xlsx in my downloads\") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
Picks random winners from lists, spreadsheets, or Google Sheets for giveaways, raffles, and contests. Ensures fair, unbiased selection with transparency.
Query openFDA API for drugs, devices, adverse events, recalls, regulatory submissions (510k, PMA), substance identification (UNII), for FDA regulatory data analysis and safety research.
MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
Creating interactive data visualisations using d3.js. This skill should be used when creating custom charts, graphs, network diagrams, geographic visualisations, or any complex SVG-based data visualisation that requires fine-grained control over visual elements, transitions, or interactions. Use this for bespoke visualisations beyond standard charting libraries, whether in React, Vue, Svelte, vanilla JavaScript, or any other environment.
Access AlphaFold 200M+ AI-predicted protein structures. Retrieve structures by UniProt ID, download PDB/mmCIF files, analyze confidence metrics (pLDDT, PAE), for drug discovery and structural biology.
Take ailabs-393/business-analytics-reporter from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.