{"id":"32a7f638-0f4b-4f79-8a60-f9e953e1d119","entityType":"agent","slug":"clawhub-oyi77-data-analyst","name":"Data Analyst","canonicalUrl":"https://xpersona.co/agent/clawhub-oyi77-data-analyst","canonicalPath":"/agent/clawhub-oyi77-data-analyst","generatedAt":"2026-04-17T04:30:54.828Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights. Skill: Data Analyst Owner: oyi77 Summary: Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights. Tags: latest:1.0.0 Version history: v1.0.0 | 2026-02-06T20:42:17.278Z | auto Initial release of the Data Analyst skill: - Provides SQL query patterns for common analyses, including cohort and funnel ana","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 7.4K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7cpmgq5bpf1mp69bpd7n9as180nssd:data-analyst","sourceUrl":"https://clawhub.ai/oyi77/data-analyst","homepage":"https://clawhub.ai/oyi77/data-analyst","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/oyi77/data-analyst","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":70,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actio"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No protocol or capability metadata is available."},"protocols":[],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":0,"capabilityMatrix":{"rows":[],"flattenedTokens":""}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":7406,"packageName":null,"latestVersion":"1.0.0","tractionLabel":"7.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T17:07:00.775Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T17:07:00.775Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T17:07:00.775Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.0","createdAt":"2026-02-06T20:42:17.278Z","changelog":"Initial release of the Data Analyst skill: - Provides SQL query patterns for common analyses, including cohort and funnel analysis. - Enables spreadsheet processing and data cleaning techniques. - Offers Python code samples for data analysis and visualization. - Includes guides for chart selection and terminal-friendly ASCII charts. - Delivers templates and checklists for data audits and report generation.","fileCount":4,"zipByteSize":9709}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7cpmgq5bpf1mp69bpd7n9as180nssd:data-analyst","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/contract","trustUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/trust"},"curlExamples":["curl -s \"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/snapshot\"","curl -s \"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/contract\"","curl -s \"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":[]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-04-17T04:30:54.827Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/dossier","snapshotUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/contract","trustUrl":"https://xpersona.co/api/v1/agents/clawhub-oyi77-data-analyst/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Data Analyst\n\nOwner: oyi77\n\nSummary: Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights.\n\nTags: latest:1.0.0\n\nVersion history:\n\nv1.0.0 | 2026-02-06T20:42:17.278Z | auto\n\nInitial release of the Data Analyst skill:\n\n- Provides SQL query patterns for common analyses, including cohort and funnel analysis.\n- Enables spreadsheet processing and data cleaning techniques.\n- Offers Python code samples for data analysis and visualization.\n- Includes guides for chart selection and terminal-friendly ASCII charts.\n- Delivers templates and checklists for data audits and report generation.\n\nArchive index:\n\nArchive v1.0.0: 4 files, 9709 bytes\n\nFiles: scripts/data-init.sh (5761b), scripts/query.sh (3299b), SKILL.md (13992b), _meta.json (131b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: data-analyst\nversion: 1.0.0\ndescription: \"Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights.\"\nauthor: openclaw\n---\n\n# Data Analyst Skill 📊\n\n**Turn your AI agent into a data analysis powerhouse.**\n\nQuery databases, analyze spreadsheets, create visualizations, and generate insights that drive decisions.\n\n---\n\n## What This Skill Does\n\n✅ **SQL Queries** — Write and execute queries against databases\n✅ **Spreadsheet Analysis** — Process CSV, Excel, Google Sheets data\n✅ **Data Visualization** — Create charts, graphs, and dashboards\n✅ **Report Generation** — Automated reports with insights\n✅ **Data Cleaning** — Handle missing data, outliers, formatting\n✅ **Statistical Analysis** — Descriptive stats, trends, correlations\n\n---\n\n## Quick Start\n\n1. Configure your data sources in `TOOLS.md`:\n```markdown\n### Data Sources\n- Primary DB: [Connection string or description]\n- Spreadsheets: [Google Sheets URL / local path]\n- Data warehouse: [BigQuery/Snowflake/etc.]\n```\n\n2. Set up your workspace:\n```bash\n./scripts/data-init.sh\n```\n\n3. Start analyzing!\n\n---\n\n## SQL Query Patterns\n\n### Common Query Templates\n\n**Basic Data Exploration**\n```sql\n-- Row count\nSELECT COUNT(*) FROM table_name;\n\n-- Sample data\nSELECT * FROM table_name LIMIT 10;\n\n-- Column statistics\nSELECT \n    column_name,\n    COUNT(*) as count,\n    COUNT(DISTINCT column_name) as unique_values,\n    MIN(column_name) as min_val,\n    MAX(column_name) as max_val\nFROM table_name\nGROUP BY column_name;\n```\n\n**Time-Based Analysis**\n```sql\n-- Daily aggregation\nSELECT \n    DATE(created_at) as date,\n    COUNT(*) as daily_count,\n    SUM(amount) as daily_total\nFROM transactions\nGROUP BY DATE(created_at)\nORDER BY date DESC;\n\n-- Month-over-month comparison\nSELECT \n    DATE_TRUNC('month', created_at) as month,\n    COUNT(*) as count,\n    LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)) as prev_month,\n    (COUNT(*) - LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at))) / \n        NULLIF(LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)), 0) * 100 as growth_pct\nFROM transactions\nGROUP BY DATE_TRUNC('month', created_at)\nORDER BY month;\n```\n\n**Cohort Analysis**\n```sql\n-- User cohort by signup month\nSELECT \n    DATE_TRUNC('month', u.created_at) as cohort_month,\n    DATE_TRUNC('month', o.created_at) as activity_month,\n    COUNT(DISTINCT u.id) as users\nFROM users u\nLEFT JOIN orders o ON u.id = o.user_id\nGROUP BY cohort_month, activity_month\nORDER BY cohort_month, activity_month;\n```\n\n**Funnel Analysis**\n```sql\n-- Conversion funnel\nWITH funnel AS (\n    SELECT\n        COUNT(DISTINCT CASE WHEN event = 'page_view' THEN user_id END) as views,\n        COUNT(DISTINCT CASE WHEN event = 'signup' THEN user_id END) as signups,\n        COUNT(DISTINCT CASE WHEN event = 'purchase' THEN user_id END) as purchases\n    FROM events\n    WHERE date >= CURRENT_DATE - INTERVAL '30 days'\n)\nSELECT \n    views,\n    signups,\n    ROUND(signups * 100.0 / NULLIF(views, 0), 2) as signup_rate,\n    purchases,\n    ROUND(purchases * 100.0 / NULLIF(signups, 0), 2) as purchase_rate\nFROM funnel;\n```\n\n---\n\n## Data Cleaning\n\n### Common Data Quality Issues\n\n| Issue | Detection | Solution |\n|-------|-----------|----------|\n| **Missing values** | `IS NULL` or empty string | Impute, drop, or flag |\n| **Duplicates** | `GROUP BY` with `HAVING COUNT(*) > 1` | Deduplicate with rules |\n| **Outliers** | Z-score > 3 or IQR method | Investigate, cap, or exclude |\n| **Inconsistent formats** | Sample and pattern match | Standardize with transforms |\n| **Invalid values** | Range checks, referential integrity | Validate and correct |\n\n### Data Cleaning SQL Patterns\n\n```sql\n-- Find duplicates\nSELECT email, COUNT(*)\nFROM users\nGROUP BY email\nHAVING COUNT(*) > 1;\n\n-- Find nulls\nSELECT \n    COUNT(*) as total,\n    SUM(CASE WHEN email IS NULL THEN 1 ELSE 0 END) as null_emails,\n    SUM(CASE WHEN name IS NULL THEN 1 ELSE 0 END) as null_names\nFROM users;\n\n-- Standardize text\nUPDATE products\nSET category = LOWER(TRIM(category));\n\n-- Remove outliers (IQR method)\nWITH stats AS (\n    SELECT \n        PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY value) as q1,\n        PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY value) as q3\n    FROM data\n)\nSELECT * FROM data, stats\nWHERE value BETWEEN q1 - 1.5*(q3-q1) AND q3 + 1.5*(q3-q1);\n```\n\n### Data Cleaning Checklist\n\n```markdown\n# Data Quality Audit: [Dataset]\n\n## Row-Level Checks\n- [ ] Total row count: [X]\n- [ ] Duplicate rows: [X]\n- [ ] Rows with any null: [X]\n\n## Column-Level Checks\n| Column | Type | Nulls | Unique | Min | Max | Issues |\n|--------|------|-------|--------|-----|-----|--------|\n| [col] | [type] | [n] | [n] | [v] | [v] | [notes] |\n\n## Data Lineage\n- Source: [Where data came from]\n- Last updated: [Date]\n- Known issues: [List]\n\n## Cleaning Actions Taken\n1. [Action and reason]\n2. [Action and reason]\n```\n\n---\n\n## Spreadsheet Analysis\n\n### CSV/Excel Processing with Python\n\n```python\nimport pandas as pd\n\n# Load data\ndf = pd.read_csv('data.csv')  # or pd.read_excel('data.xlsx')\n\n# Basic exploration\nprint(df.shape)  # (rows, columns)\nprint(df.info())  # Column types and nulls\nprint(df.describe())  # Numeric statistics\n\n# Data cleaning\ndf = df.drop_duplicates()\ndf['date'] = pd.to_datetime(df['date'])\ndf['amount'] = df['amount'].fillna(0)\n\n# Analysis\nsummary = df.groupby('category').agg({\n    'amount': ['sum', 'mean', 'count'],\n    'quantity': 'sum'\n}).round(2)\n\n# Export\nsummary.to_csv('analysis_output.csv')\n```\n\n### Common Pandas Operations\n\n```python\n# Filtering\nfiltered = df[df['status'] == 'active']\nfiltered = df[df['amount'] > 1000]\nfiltered = df[df['date'].between('2024-01-01', '2024-12-31')]\n\n# Aggregation\nby_category = df.groupby('category')['amount'].sum()\npivot = df.pivot_table(values='amount', index='month', columns='category', aggfunc='sum')\n\n# Window functions\ndf['running_total'] = df['amount'].cumsum()\ndf['pct_change'] = df['amount'].pct_change()\ndf['rolling_avg'] = df['amount'].rolling(window=7).mean()\n\n# Merging\nmerged = pd.merge(df1, df2, on='id', how='left')\n```\n\n---\n\n## Data Visualization\n\n### Chart Selection Guide\n\n| Data Type | Best Chart | Use When |\n|-----------|------------|----------|\n| Trend over time | Line chart | Showing patterns/changes over time |\n| Category comparison | Bar chart | Comparing discrete categories |\n| Part of whole | Pie/Donut | Showing proportions (≤5 categories) |\n| Distribution | Histogram | Understanding data spread |\n| Correlation | Scatter plot | Relationship between two variables |\n| Many categories | Horizontal bar | Ranking or comparing many items |\n| Geographic | Map | Location-based data |\n\n### Python Visualization with Matplotlib/Seaborn\n\n```python\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n\n# Set style\nplt.style.use('seaborn-v0_8-whitegrid')\nsns.set_palette(\"husl\")\n\n# Line chart (trends)\nplt.figure(figsize=(10, 6))\nplt.plot(df['date'], df['value'], marker='o')\nplt.title('Trend Over Time')\nplt.xlabel('Date')\nplt.ylabel('Value')\nplt.xticks(rotation=45)\nplt.tight_layout()\nplt.savefig('trend.png', dpi=150)\n\n# Bar chart (comparisons)\nplt.figure(figsize=(10, 6))\nsns.barplot(data=df, x='category', y='amount')\nplt.title('Amount by Category')\nplt.xticks(rotation=45)\nplt.tight_layout()\nplt.savefig('comparison.png', dpi=150)\n\n# Heatmap (correlations)\nplt.figure(figsize=(10, 8))\nsns.heatmap(df.corr(), annot=True, cmap='coolwarm', center=0)\nplt.title('Correlation Matrix')\nplt.tight_layout()\nplt.savefig('correlation.png', dpi=150)\n```\n\n### ASCII Charts (Quick Terminal Visualization)\n\nWhen you can't generate images, use ASCII:\n\n```\nRevenue by Month (in $K)\n========================\nJan: ████████████████ 160\nFeb: ██████████████████ 180\nMar: ████████████████████████ 240\nApr: ██████████████████████ 220\nMay: ██████████████████████████ 260\nJun: ████████████████████████████ 280\n```\n\n---\n\n## Report Generation\n\n### Standard Report Template\n\n```markdown\n# [Report Name]\n**Period:** [Date range]\n**Generated:** [Date]\n**Author:** [Agent/Human]\n\n## Executive Summary\n[2-3 sentences with key findings]\n\n## Key Metrics\n\n| Metric | Current | Previous | Change |\n|--------|---------|----------|--------|\n| [Metric] | [Value] | [Value] | [+/-X%] |\n\n## Detailed Analysis\n\n### [Section 1]\n[Analysis with supporting data]\n\n### [Section 2]\n[Analysis with supporting data]\n\n## Visualizations\n[Insert charts]\n\n## Insights\n1. **[Insight]**: [Supporting evidence]\n2. **[Insight]**: [Supporting evidence]\n\n## Recommendations\n1. [Actionable recommendation]\n2. [Actionable recommendation]\n\n## Methodology\n- Data source: [Source]\n- Date range: [Range]\n- Filters applied: [Filters]\n- Known limitations: [Limitations]\n\n## Appendix\n[Supporting data tables]\n```\n\n### Automated Report Script\n\n```bash\n#!/bin/bash\n# generate-report.sh\n\n# Pull latest data\npython scripts/extract_data.py --output data/latest.csv\n\n# Run analysis\npython scripts/analyze.py --input data/latest.csv --output reports/\n\n# Generate report\npython scripts/format_report.py --template weekly --output reports/weekly-$(date +%Y-%m-%d).md\n\necho \"Report generated: reports/weekly-$(date +%Y-%m-%d).md\"\n```\n\n---\n\n## Statistical Analysis\n\n### Descriptive Statistics\n\n| Statistic | What It Tells You | Use Case |\n|-----------|-------------------|----------|\n| **Mean** | Average value | Central tendency |\n| **Median** | Middle value | Robust to outliers |\n| **Mode** | Most common | Categorical data |\n| **Std Dev** | Spread around mean | Variability |\n| **Min/Max** | Range | Data boundaries |\n| **Percentiles** | Distribution shape | Benchmarking |\n\n### Quick Stats with Python\n\n```python\n# Full descriptive statistics\nstats = df['amount'].describe()\nprint(stats)\n\n# Additional stats\nprint(f\"Median: {df['amount'].median()}\")\nprint(f\"Mode: {df['amount'].mode()[0]}\")\nprint(f\"Skewness: {df['amount'].skew()}\")\nprint(f\"Kurtosis: {df['amount'].kurtosis()}\")\n\n# Correlation\ncorrelation = df['sales'].corr(df['marketing_spend'])\nprint(f\"Correlation: {correlation:.3f}\")\n```\n\n### Statistical Tests Quick Reference\n\n| Test | Use Case | Python |\n|------|----------|--------|\n| T-test | Compare two means | `scipy.stats.ttest_ind(a, b)` |\n| Chi-square | Categorical independence | `scipy.stats.chi2_contingency(table)` |\n| ANOVA | Compare 3+ means | `scipy.stats.f_oneway(a, b, c)` |\n| Pearson | Linear correlation | `scipy.stats.pearsonr(x, y)` |\n\n---\n\n## Analysis Workflow\n\n### Standard Analysis Process\n\n1. **Define the Question**\n   - What are we trying to answer?\n   - What decisions will this inform?\n\n2. **Understand the Data**\n   - What data is available?\n   - What's the structure and quality?\n\n3. **Clean and Prepare**\n   - Handle missing values\n   - Fix data types\n   - Remove duplicates\n\n4. **Explore**\n   - Descriptive statistics\n   - Initial visualizations\n   - Identify patterns\n\n5. **Analyze**\n   - Deep dive into findings\n   - Statistical tests if needed\n   - Validate hypotheses\n\n6. **Communicate**\n   - Clear visualizations\n   - Actionable insights\n   - Recommendations\n\n### Analysis Request Template\n\n```markdown\n# Analysis Request\n\n## Question\n[What are we trying to answer?]\n\n## Context\n[Why does this matter? What decision will it inform?]\n\n## Data Available\n- [Dataset 1]: [Description]\n- [Dataset 2]: [Description]\n\n## Expected Output\n- [Deliverable 1]\n- [Deliverable 2]\n\n## Timeline\n[When is this needed?]\n\n## Notes\n[Any constraints or considerations]\n```\n\n---\n\n## Scripts\n\n### data-init.sh\nInitialize your data analysis workspace.\n\n### query.sh\nQuick SQL query execution.\n\n```bash\n# Run query from file\n./scripts/query.sh --file queries/daily-report.sql\n\n# Run inline query\n./scripts/query.sh \"SELECT COUNT(*) FROM users\"\n\n# Save output to file\n./scripts/query.sh --file queries/export.sql --output data/export.csv\n```\n\n### analyze.py\nPython analysis toolkit.\n\n```bash\n# Basic analysis\npython scripts/analyze.py --input data/sales.csv\n\n# With specific analysis type\npython scripts/analyze.py --input data/sales.csv --type cohort\n\n# Generate report\npython scripts/analyze.py --input data/sales.csv --report weekly\n```\n\n---\n\n## Integration Tips\n\n### With Other Skills\n\n| Skill | Integration |\n|-------|-------------|\n| **Marketing** | Analyze campaign performance, content metrics |\n| **Sales** | Pipeline analytics, conversion analysis |\n| **Business Dev** | Market research data, competitor analysis |\n\n### Common Data Sources\n\n- **Databases:** PostgreSQL, MySQL, SQLite\n- **Warehouses:** BigQuery, Snowflake, Redshift\n- **Spreadsheets:** Google Sheets, Excel, CSV\n- **APIs:** REST endpoints, GraphQL\n- **Files:** JSON, Parquet, XML\n\n---\n\n## Best Practices\n\n1. **Start with the question** — Know what you're trying to answer\n2. **Validate your data** — Garbage in = garbage out\n3. **Document everything** — Queries, assumptions, decisions\n4. **Visualize appropriately** — Right chart for right data\n5. **Show your work** — Methodology matters\n6. **Lead with insights** — Not just data dumps\n7. **Make it actionable** — \"So what?\" → \"Now what?\"\n8. **Version your queries** — Track changes over time\n\n---\n\n## Common Mistakes\n\n❌ **Confirmation bias** — Looking for data to support a conclusion\n❌ **Correlation ≠ causation** — Be careful with claims\n❌ **Cherry-picking** — Using only favorable data\n❌ **Ignoring outliers** — Investigate before removing\n❌ **Over-complicating** — Simple analysis often wins\n❌ **No context** — Numbers without comparison are meaningless\n\n---\n\n## License\n\n**License:** MIT — use freely, modify, distribute.\n\n---\n\n*\"The goal is to turn data into information, and information into insight.\" — Carly Fiorina*\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7cpmgq5bpf1mp69bpd7n9as180nssd\",\n  \"slug\": \"data-analyst\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1770410537278\n}","readmeExcerpt":"Skill: Data Analyst Owner: oyi77 Summary: Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights. Tags: latest:1.0.0 Version history: v1.0.0 | 2026-02-06T20:42:17.278Z | auto Initial release of the Data Analyst skill: - Provides SQL query patterns for common analyses, including cohort and funnel ana","codeSnippets":[],"executableExamples":[{"language":"markdown","snippet":"### Data Sources\n- Primary DB: [Connection string or description]\n- Spreadsheets: [Google Sheets URL / local path]\n- Data warehouse: [BigQuery/Snowflake/etc.]"},{"language":"bash","snippet":"./scripts/data-init.sh"},{"language":"sql","snippet":"-- Row count\nSELECT COUNT(*) FROM table_name;\n\n-- Sample data\nSELECT * FROM table_name LIMIT 10;\n\n-- Column statistics\nSELECT \n    column_name,\n    COUNT(*) as count,\n    COUNT(DISTINCT column_name) as unique_values,\n    MIN(column_name) as min_val,\n    MAX(column_name) as max_val\nFROM table_name\nGROUP BY column_name;"},{"language":"sql","snippet":"-- Daily aggregation\nSELECT \n    DATE(created_at) as date,\n    COUNT(*) as daily_count,\n    SUM(amount) as daily_total\nFROM transactions\nGROUP BY DATE(created_at)\nORDER BY date DESC;\n\n-- Month-over-month comparison\nSELECT \n    DATE_TRUNC('month', created_at) as month,\n    COUNT(*) as count,\n    LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)) as prev_month,\n    (COUNT(*) - LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at))) / \n        NULLIF(LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)), 0) * 100 as growth_pct\nFROM transactions\nGROUP BY DATE_TRUNC('month', created_at)\nORDER BY month;"},{"language":"sql","snippet":"-- User cohort by signup month\nSELECT \n    DATE_TRUNC('month', u.created_at) as cohort_month,\n    DATE_TRUNC('month', o.created_at) as activity_month,\n    COUNT(DISTINCT u.id) as users\nFROM users u\nLEFT JOIN orders o ON u.id = o.user_id\nGROUP BY cohort_month, activity_month\nORDER BY cohort_month, activity_month;"},{"language":"sql","snippet":"-- Conversion funnel\nWITH funnel AS (\n    SELECT\n        COUNT(DISTINCT CASE WHEN event = 'page_view' THEN user_id END) as views,\n        COUNT(DISTINCT CASE WHEN event = 'signup' THEN user_id END) as signups,\n        COUNT(DISTINCT CASE WHEN event = 'purchase' THEN user_id END) as purchases\n    FROM events\n    WHERE date >= CURRENT_DATE - INTERVAL '30 days'\n)\nSELECT \n    views,\n    signups,\n    ROUND(signups * 100.0 / NULLIF(views, 0), 2) as signup_rate,\n    purchases,\n    ROUND(purchases * 100.0 / NULLIF(signups, 0), 2) as purchase_rate\nFROM funnel;"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: data-analyst\nversion: 1.0.0\ndescription: \"Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights.\"\nauthor: openclaw\n---\n\n# Data Analyst Skill 📊\n\n**Turn your AI agent into a data analysis powerhouse.**\n\nQuery databases, analyze spreadsheets, create visualizations, and generate insights that drive decisions.\n\n---\n\n## What This Skill Does\n\n✅ **SQL Queries** — Write and execute queries against databases\n✅ **Spreadsheet Analysis** — Process CSV, Excel, Google Sheets data\n✅ **Data Visualization** — Create charts, graphs, and dashboards\n✅ **Report Generation** — Automated reports with insights\n✅ **Data Cleaning** — Handle missing data, outliers, formatting\n✅ **Statistical Analysis** — Descriptive stats, trends, correlations\n\n---\n\n## Quick Start\n\n1. Configure your data sources in `TOOLS.md`:\n```markdown\n### Data Sources\n- Primary DB: [Connection string or description]\n- Spreadsheets: [Google Sheets URL / local path]\n- Data warehouse: [BigQuery/Snowflake/etc.]\n```\n\n2. Set up your workspace:\n```bash\n./scripts/data-init.sh\n```\n\n3. Start analyzing!\n\n---\n\n## SQL Query Patterns\n\n### Common Query Templates\n\n**Basic Data Exploration**\n```sql\n-- Row count\nSELECT COUNT(*) FROM table_name;\n\n-- Sample data\nSELECT * FROM table_name LIMIT 10;\n\n-- Column statistics\nSELECT \n    column_name,\n    COUNT(*) as count,\n    COUNT(DISTINCT column_name) as unique_values,\n    MIN(column_name) as min_val,\n    MAX(column_name) as max_val\nFROM table_name\nGROUP BY column_name;\n```\n\n**Time-Based Analysis**\n```sql\n-- Daily aggregation\nSELECT \n    DATE(created_at) as date,\n    COUNT(*) as daily_count,\n    SUM(amount) as daily_total\nFROM transactions\nGROUP BY DATE(created_at)\nORDER BY date DESC;\n\n-- Month-over-month comparison\nSELECT \n    DATE_TRUNC('month', created_at) as month,\n    COUNT(*) as count,\n    LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)) as prev_month,\n    (COUNT(*) - LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at))) / \n        NULLIF(LAG(COUNT(*)) OVER (ORDER BY DATE_TRUNC('month', created_at)), 0) * 100 as growth_pct\nFROM transactions\nGROUP BY DATE_TRUNC('month', created_at)\nORDER BY month;\n```\n\n**Cohort Analysis**\n```sql\n-- User cohort by signup month\nSELECT \n    DATE_TRUNC('month', u.created_at) as cohort_month,\n    DATE_TRUNC('month', o.created_at) as activity_month,\n    COUNT(DISTINCT u.id) as users\nFROM users u\nLEFT JOIN orders o ON u.id = o.user_id\nGROUP BY cohort_month, activity_month\nORDER BY cohort_month, activity_month;\n```\n\n**Funnel Analysis**\n```sql\n-- Conversion funnel\nWITH funnel AS (\n    SELECT\n        COUNT(DISTINCT CASE WHEN event = 'page_view' THEN user_id END) as views,\n        COUNT(DISTINCT CASE WHEN event = 'signup' THEN user_id END) as signups,\n        COUNT(DISTINCT CASE WHEN event = 'purchase' THEN user_id END) as purchases\n    FROM events\n    WHERE date >= CURRENT_DATE - INTERVAL '30 days'"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7cpmgq5bpf1mp69bpd7n9as180nssd\",\n  \"slug\": \"data-analyst\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1770410537278\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights. Skill: Data Analyst Owner: oyi77 Summary: Data visualization, report generation, SQL queries, and spreadsheet automation. Transform your AI agent into a data-savvy analyst that turns raw data into actionable insights. Tags: latest:1.0.0 Version history: v1.0.0 | 2026-02-06T20:42:17.278Z | auto Initial release of the Data Analyst skill: - Provides SQL query patterns for common analyses, including cohort and funnel ana","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":642,"uniquenessScore":57,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"agent-directory","verified":false,"confidence":"low","updatedAt":"2026-04-17T04:30:54.828Z","emptyReason":"No close protocol neighbors were found."},"items":[],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[]}}}