🐼 bamboo

Collective intelligence for data analysts

bamboo — analyst
✱ Welcome to Bamboo
Panda analyzing data
$ bamboo pull

Your AI analyst just got 400 colleagues.

Every fixed query. Every "wrong chart type." Every "that's not how you calculate churn." Captured. Classified. Applied to every generation.

No proprietary data is ever shared — only generic analysis patterns and improvements. Your actual data, company names, and credentials never leave your machine.

Live corrections
1,204 corrections · 189 analysts contributing

The Problem

AI-generated analysis is 80% right and 100% dangerous.

💥

You asked for churn by cohort

Your AI gave you COUNT(*) with an INNER JOIN and half your users vanished.

💥

You asked for a revenue trend

It gave you a pie chart.

💥

You asked for a monthly report

It started with "This document provides a comprehensive overview of…"

The last 20% is where you live. Bamboo fixes it before you have to.

How It Works

The loop that makes every analyst better.

1

You describe an analysis

"Analyse churn by signup cohort"

2

Bamboo loads 300+ community patterns

LEFT JOIN. Proper denominator. Line chart. Cohorted. Labelled.

3

You tweak one thing, maybe two. Not twenty.

Your fix feeds the community pool. Next analyst's output is better because you used bamboo today.

What's Inside

Five categories. 300+ patterns.

Each one is a real mistake caught by a real analyst.

🔍

Query Logic

35 patterns

Wrong joins that silently drop your data. Date traps. Window frame defaults that nobody remembers correctly.

INNER JOIN users ON ...
LEFT JOIN users ON ... then filter NULLs explicitly
×42
OVER (PARTITION BY ...) — default RANGE frame
OVER (PARTITION BY ... ROWS BETWEEN ...)
×38
WHERE created_at = '2024-03-01'
WHERE created_at >= '2024-03-01' AND created_at < '2024-03-02'
×31
📊

Aggregation

25 patterns

Wrong denominators that quietly lie to stakeholders. Growth calcs that flip sign on negative base periods.

AVG(regional_average)
SUM(total) / SUM(count) — weighted average
×47
Churn = lost / end_of_period_count
Churn = lost / start_of_period_count
×35
COUNT(user_id) after JOIN
COUNT(DISTINCT user_id) — JOINs create fanout
×29
📈

Charts & Viz

30 patterns

The right chart for the data. Axes that don't mislead. Colours that work for everyone.

Line chart for revenue by region
Bar chart — lines imply continuity between categories
×36
Y-axis starts at $4.2M
Y-axis starts at $0 — truncated axes exaggerate differences
×33
Dual y-axes comparing revenue & signups
Two separate charts — dual axes imply false correlation
×28
🧹

Data Cleaning

22 patterns

NULL handling that doesn't surprise you at 2am. Timezone logic that actually works across DST boundaries.

WHERE status = NULL — returns 0 rows
WHERE status IS NULL
×44
Row count went up after JOIN — didn't notice
Check row count before & after every JOIN for fanout
×31
pd.to_datetime(col) with mixed formats
pd.to_datetime(col, format='%Y-%m-%d') — explicit format
×26
🎯

Insight & Story

15 patterns

Lead with the finding. Compare to something. Know your audience. Stop hedging every number.

"We analysed Q4 revenue data using a cohort methodology…"
"Revenue grew 12%, driven by enterprise expansion."
×39
"Churn is 4.2%"
"Churn is 4.2%, up from 3.1% last quarter and above 3.5% target."
×34
Insight based on 23 records, no caveat
Flag sample size before stakeholder acts on it
×27

Why This Is Different

This is not a prompt library.

It's not "awesome-sql-tips.md".

It's a living system.

When you fix a query, bamboo captures the diff. The server classifies it: "query-logic — always use LEFT JOIN when right table might have gaps."

When the same fix happens 5 times from 5 different analysts, the pattern gets a confidence score of 5. By the time it reaches you, the AI doesn't make that mistake anymore.

The skill gets measurably better every week. Not because someone updates a doc. Because analysts use it.

And your data stays yours. Only generic patterns like "use LEFT JOIN" or "start y-axis at zero" are shared — never your actual queries, tables, column names, or results. Every submission is filtered for PII before it touches the server.

Install

One command. Every analyst's expertise.

Works with Claude Code and Cursor. SQL, Python, and R. Patterns update on every pull.

Paste this into Claude Code:

Fetch https://bamboo.up.railway.app and install the bamboo skill

Claude Code will read this page, download the skill file, and save it to .claude/skills/bamboo.skill. No API key needed. Set up the auto-capture hook and your corrections flow back to the community without you thinking about it.

Paste this into Cursor:

Fetch https://bamboo.up.railway.app and install the bamboo skill into this project

Cursor will read this page, find the download link, and install the skill. No API key required.

Paste this into any AI agent:

Fetch https://bamboo.up.railway.app and install the bamboo skill into this project

Any agent that can fetch URLs and write files will read this page, find the download link, and install the skill. Works with Windsurf, Codex, Aider, and others. No API key required.

You're going to fix that JOIN anyway. You're going to change that pie chart to a bar chart. You're going to move the insight to the first line.

The only question is whether the next analyst has to fix the same things.

🐼 bamboo

"400 analysts already fixed that."

🐼 347 patterns · 1,204 corrections · 189 analysts contributing