The AI toolkit for

self-serve analytics

The AI toolkit for

self-serve analytics

Buster is the AI toolkit for delivering reliable self-serve analytics. It's open-source & purpose-built for data teams that use dbt.

Buster is the AI toolkit for delivering reliable self-serve analytics. It's open-source & purpose-built for data teams that use dbt.

KPI Dashboard

build a kpi dashboard for the last 12 months

Reasoned for 1 minute

KPI Dashboard

Version 1

This dashboard displays 8 key metrics to give you an overview of the last 12 months. Here are a few key things I noticed:

  • Strong Annual Performance: $48.8M total revenue for the last 12 months (48% growth from the prior 12 months)

  • Channel Evolution: Consistent online order dominance (vs offline orders)

  • Product Mix Stability: Bikes maintained ~86% of your sales over the last 12 months

This should give you a good pulse on financial performance, operational efficiency, and growth trends from the last 12 months.

Follow up...

Our AI may make mistakes. Check important info.

Dashboard

File

KPI Dashboard

A comprehensive dashboard showing key metrics from the last 12 months.

Total Revenue

Last 12 months

What are total sales for the last 12 months?

$48,814,611.81

Revenue, Last 12 months

Average Order Value

Last 12 months

What is our average order value for the last 12 months?

$613.32

Average Order Value, Last 12 months

Monthly Revenue and Order Volume

Last 12 months

What was our monthly revenue and order volume over the last 12 months?

Monthly Revenue by Product Category

Last 12 months

What was our monthly revenue by product category over the last 12 months?

Revenue by Product Category

Last 12 months

What was our total revenue by product category from the last 12 months?

Revenue by Sales Territory, Annual Comparison

Last 12 months vs Prior 12 Months

What was our revenue by territory, comparing the last 12 months to the 12 months prior?

Online vs Offline Orders

Last 12 months

What were our total online vs offline orders from the last 12 months?

Top 10 Products by Revenue

Last 12 months

What were our top 10 best selling products from the last 12 months?

Monthly Sales by Sales Rep

Last 12 months

What were our monthly sales for the last 12 months, broken down by sales rep?

Add content

Monthly Units Sold by Product Line

get me a breakdown of monthly units sold by product line for the last 9 months

Reasoned for 1 minute

Monthly Units Sold by Product Line

Version 1

I've successfully created a bar chart the number of units sold monthly by product line for the last 9 months. Here's what I found:

  • Standard consistently shows the highest unit sales across all months, with particularly strong performance in April (7,057 units)

  • Mountain maintains steady performance as the second-highest seller, ranging from about 2,500 to 4,600 units per month

  • Road shows moderate but consistent sales throughout the period

  • Touring has the lowest unit sales but maintains consistent activity

Let me know how else I can help.

Follow up...

Our AI may make mistakes. Check important info.

Chart

Results

File

Monthly Units Sold by Product Line

Last 9 months

What were monthly units sold, grouped by product line for the last 9 months?

KPI Dashboard

build a kpi dashboard for the last 12 months

Reasoned for 1 minute

KPI Dashboard

Version 1

This dashboard displays 8 key metrics to give you an overview of the last 12 months. Here are a few key things I noticed:

  • Strong Annual Performance: $48.8M total revenue for the last 12 months (48% growth from the prior 12 months)

  • Channel Evolution: Consistent online order dominance (vs offline orders)

  • Product Mix Stability: Bikes maintained ~86% of your sales over the last 12 months

This should give you a good pulse on financial performance, operational efficiency, and growth trends from the last 12 months.

Follow up...

Our AI may make mistakes. Check important info.

Dashboard

File

KPI Dashboard

A comprehensive dashboard showing key metrics from the last 12 months.

Total Revenue

Last 12 months

What are total sales for the last 12 months?

$48,814,611.81

Revenue, Last 12 months

Average Order Value

Last 12 months

What is our average order value for the last 12 months?

$613.32

Average Order Value, Last 12 months

Monthly Revenue and Order Volume

Last 12 months

What was our monthly revenue and order volume over the last 12 months?

Monthly Revenue by Product Category

Last 12 months

What was our monthly revenue by product category over the last 12 months?

Revenue by Product Category

Last 12 months

What was our total revenue by product category from the last 12 months?

Revenue by Sales Territory, Annual Comparison

Last 12 months vs Prior 12 Months

What was our revenue by territory, comparing the last 12 months to the 12 months prior?

Online vs Offline Orders

Last 12 months

What were our total online vs offline orders from the last 12 months?

Top 10 Products by Revenue

Last 12 months

What were our top 10 best selling products from the last 12 months?

Monthly Sales by Sales Rep

Last 12 months

What were our monthly sales for the last 12 months, broken down by sales rep?

Add content

Monthly Units Sold by Product Line

get me a breakdown of monthly units sold by product line for the last 9 months

Reasoned for 1 minute

Monthly Units Sold by Product Line

Version 1

I've successfully created a bar chart the number of units sold monthly by product line for the last 9 months. Here's what I found:

  • Standard consistently shows the highest unit sales across all months, with particularly strong performance in April (7,057 units)

  • Mountain maintains steady performance as the second-highest seller, ranging from about 2,500 to 4,600 units per month

  • Road shows moderate but consistent sales throughout the period

  • Touring has the lowest unit sales but maintains consistent activity

Let me know how else I can help.

Follow up...

Our AI may make mistakes. Check important info.

Chart

Results

File

Monthly Units Sold by Product Line

Last 9 months

What were monthly units sold, grouped by product line for the last 9 months?

Buster is an AI platform for self-serve analytics, purpose-built for dbt.

How it works

Spin up true self-serve analytics, with a single command

Document your dbt project with AI and empower business users to explore data on their own.

Step 1: Index & document

Index & document your dbt project with `buster init`

1

Connect your dbt repo

Connect your dbt repo, data warehouse, BI tools, etc to Buster.

2

Run `buster init`

Run `buster init` from your IDE or terminal. Buster will introspect your dbt repo in the background; taking a few minutes to analyze metadata, run exploratory queries, and gain a deeper understanding of your data models.

3

Review PR

Buster will write robust documentation files (.yml and .md files within your repo) and send you a pull request to review/merge changes.

>

buster init

>

buster init

Onboarding agent initiated. This operation takes ~10 minutes.

Successfully documented your repository.

>

Step 2: Give everyone an AI data analyst

Enable business users to explore data on their own

1

Augment your data team with an AI data analyst

With a deep understanding of your data models, Buster can handle data requests for you. Business users can ask Buster questions in plain english and get back detailed reports in 1-2 minutes.

2

Real analysis, not just text-to-sql

Buster is an intelligent "Deep Research" agent. For each request, Buster will:

  • thoroughly explore relevant docs, models, metrics, etc

  • run lightweight queries to inform and validate assumptions

  • adapt as it gets new information

  • return robust charts, dashboards, or notebook-style reports

Ask Buster a question…

Ask Buster a question…

Step 3: AI-powered feedback loop

Improve your dbt project over time with background agents

1

Receive Slack alerts when documentation is lacking or unclear

Receive Slack alerts whenever Buster lacks the required documentation to answer a user's data request.

2

Respond & clarify

Use `@Buster` directly in slack to clarify and kick off background documentation agents.

3

Review PR

Background agents will document your clarifications, make model improvements, and send you a PR for review.

AI for analysis

Enable business users to explore data on their own

Reports

Dashboards

Charts

Sales Rep Performance Analysis

why do top sales reps perform better than bottom-performing reps

Reasoned for 3 minutes

Sales Rep Analysis - Top vs Bottom Performers

Version 1

I created a report to assess your top vs bottom performing sales reps.

The clearest differentiator between the two was targeting daily cyclists instead of less frequent cyclists. Top performers consistently prioritize this "daily cyclists" segment and daily cyclists spend 2.3x more than less frequent cyclists.

If you see something interesting, let me know. I can drill down or explore whatever might be meaningful.

Follow up...

Our AI may make mistakes. Check important info.

Report

File

Sales Rep Analysis - Top vs Bottom Performers

Aug 11, 2025

Created by Buster

Top quartile reps generate $17.3M annually vs bottom quartile at $5.9M - a $11.4M performance difference. Targeting daily cyclists instead of less frequent cyclists appears to be the clearest differentiator between top-performing and bottom-performing reps. Some key findings are:

  • Daily Cycling" customers represent a $114,391 average annual value vs $46,564-$59,198 for other segments (like hobbyists)

  • Top performers capture 51% of this daily cyclist segment vs 27.5% for bottom performers

  • Top performers achieve 75%+ revenue from existing customers

Top Performers Close 3.5x More Revenue

2024 performance data shows a dramatic gap between our top and bottom sales representatives. Linda Mitchell leads with $4.23M in revenue, while Lynn Tsoflias generated only $1.19M—a 3.5X difference.

Total Sales by Sales Rep

Last 12 months

What were total sales for each sales reps from the last 12 months?

Top Performers Have a Higher Customer Count

Top quartile reps serve an average of 52.5 customers annually while bottom quartile representatives serve an average of 22.8 customers annually. Top performers have a 130% larger customer base compared to bottom performers, with a 950% difference between Jillian Carson (highest, 57 customers) and Pamela Ansman-Wolfe (lowest, 6 customers).

Customer Count by Sales Rep

Last 12 months

How many unique customers did each sales rep close?

Top Performers Focus on Existing Customers

Top quartile reps derive 74.5-78.4% of revenue from existing customers, while bottom quartile reps show significant variance (0-74% existing customer focus). A focus on existing customers does correlate with sustained high performance. This suggests that relationship building and account expansion are more profitable than constant prospecting.

New vs Existing Customer Orders by Sales Rep

Last 12 months

What percentage of orders from the last 12 months were with new vs existing customers, broken down by sales rep?

Top Performers Focus on "Daily Cyclists"

Customers recorded as "Daily" cyclists represent the premium market segment, have a higher AOV, and make more frequent purchases. 51% of customers that have purchased from top performers are daily cyclists, vs only 27.5% from bottom performers. This is a 328% differential in segment capture.

% of Total Sales by Product Category

Last 12 months

What is the % breakdown of sales by product category for each sales representative?

"Daily Cyclists" Spend 2.3x More

There is a $50,477 premium when selling to daily cyclists. Daily cyclists spend over 2.3x more than the rolling average ($88,758 vs $38,281). The ratio difference between daily and occasional cyclists is even more pronounced (272x more). Top performers strategically focus on the daily cyclist segment because of this.

Average Annual Spend by Cycling Frequency

Last 12 months

What is the average annual spend of customers grouped by their cycling frequency?

Conclusion

Top-performing sales reps outperform their bottom-performing counterparts by strategically targeting high-value "Daily Cyclist" customers, who spend 2.3x more than the average, and by focusing on existing customer relationships, which drive 74.5-78.4% of their revenue. This dual focus on premium segments and account expansion results in a 2.9x revenue gap and a 130% larger customer base compared to bottom performers, who capture only 27.5% of daily cyclists and show inconsistent prioritization of existing customers.

AI for analysis

Enable business users to explore data on their own

Reports

Dashboards

Charts

AI for analysis

Enable business users to explore data on their own

Reports

Dashboards

Charts

All examples shown above were actually generated by Buster (using 102 dbt models built on the AdventureWorks schema)

AI for data modeling

Build & document your data models with an AI modeling agent

Buster brings AI agents right to your terminal. It's like Claude Code, but purpose-built for data modeling and data cataloging tasks. Turn hours-long workflows into a single command.

Document your data repository

Rapidly document data models. Generate bulk updates whenever changes are made in your repo.

Create new models

Create new models on the fly. Push up new models and have users running queries in minutes.

Improve your models over time

Make changes and optimize existing models over time.

orders.sql

orders.yml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

name: orders

description: >

Represents individual customer order transactions. Contains details about each order,including identifier, customer linkage, timing, status, and financial value. This isan event-based model crucial for sales analysis, revenue tracking, and understandingpurchase patterns.

dimensions:

- name: order_id

description: >

The unique identifier for each order transaction. Serves as the primary key forthis model. Used for looking up specific orders or counting unique orders.

type: string

- name: customer_id # Changed from user_id for consistency

description: >

Foreign key referencing the 'id' in the 'customers' model. Links the orderback to the specific customer who placed it. Essential for customer-centric analysis.

type: string

- name: order_date # Changed from order_timestamp

description: >

The date the order was placed. Used for time-series analysis, filtering by date ranges(e.g., daily, weekly, monthly revenue), and cohort analysis based on order time.

type: date

searchable: true

- name: status

description: >

The current fulfillment or payment status of the order (e.g., 'pending', 'shipped','delivered', 'cancelled'). Used for operational reporting and filtering orders by state.

type: string

options: ["pending", "shipped", "delivered", "cancelled"]

- name: ordered_within_30_days_of_signup # From quickstart logic

description: >

A boolean flag indicating if this order was placed within 30 days of the associatedcustomer's signup date (`customers.user_created_at`). Useful for analyzing earlycustomer purchasing behavior. Requires join to 'customers' model to calculate.

type: boolean

measures:

- name: amount # Changed from order_total

description: >The total monetary value of the order, typically in a specific currency (e.g., USD). This is the primary value used for revenue calculations (SUM, AVG).

type: number

- name: item_count # Added measure

description: The total number of distinct items included in the order. Used for analyzing order size.

type: integer

filters:

- name: orders_last_30_days

description: Selects orders placed within the last 30 calendar days.

expr: "orders.order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)"

- name: first_month_orders

description: >

Selects orders placed within 30 days of the associated customer's signup date.

Relies on the pre-calculated 'ordered_within_30_days_of_signup' dimension.

expr: "orders.ordered_within_30_days_of_signup"

relationships:

- name: customer # Renamed from 'users'

source_col: customer_id # Key in orders (current)

ref_col: id # Key in customers (related)

description: >

Links this order back to the specific customer who placed it, using the 'customers' model.

Enables retrieving customer details (e.g., name, email, country) for order analysis.

cardinality: many-to-one

type: LEFT

# - name: products # Example linking to a products model

# source_col: product_id # Assuming a product_id field in orders

# ref_col: id # Assuming id is PK in products

# description: Links the order line to the specific product.

# cardinality: many-to-one

# type: LEFT

orders.sql

orders.yml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

name: orders

description: >

Represents individual customer order transactions. Contains details about each order,including identifier, customer linkage, timing, status, and financial value. This isan event-based model crucial for sales analysis, revenue tracking, and understandingpurchase patterns.

dimensions:

- name: order_id

description: >

The unique identifier for each order transaction. Serves as the primary key forthis model. Used for looking up specific orders or counting unique orders.

type: string

- name: customer_id # Changed from user_id for consistency

description: >

Foreign key referencing the 'id' in the 'customers' model. Links the orderback to the specific customer who placed it. Essential for customer-centric analysis.

type: string

- name: order_date # Changed from order_timestamp

description: >

The date the order was placed. Used for time-series analysis, filtering by date ranges(e.g., daily, weekly, monthly revenue), and cohort analysis based on order time.

type: date

searchable: true

- name: status

description: >

The current fulfillment or payment status of the order (e.g., 'pending', 'shipped','delivered', 'cancelled'). Used for operational reporting and filtering orders by state.

type: string

options: ["pending", "shipped", "delivered", "cancelled"]

- name: ordered_within_30_days_of_signup # From quickstart logic

description: >

A boolean flag indicating if this order was placed within 30 days of the associatedcustomer's signup date (`customers.user_created_at`). Useful for analyzing earlycustomer purchasing behavior. Requires join to 'customers' model to calculate.

type: boolean

measures:

- name: amount # Changed from order_total

description: >The total monetary value of the order, typically in a specific currency (e.g., USD). This is the primary value used for revenue calculations (SUM, AVG).

type: number

- name: item_count # Added measure

description: The total number of distinct items included in the order. Used for analyzing order size.

type: integer

filters:

- name: orders_last_30_days

description: Selects orders placed within the last 30 calendar days.

expr: "orders.order_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)"

- name: first_month_orders

description: >

Selects orders placed within 30 days of the associated customer's signup date.

Relies on the pre-calculated 'ordered_within_30_days_of_signup' dimension.

expr: "orders.ordered_within_30_days_of_signup"

relationships:

- name: customer # Renamed from 'users'

source_col: customer_id # Key in orders (current)

ref_col: id # Key in customers (related)

description: >

Links this order back to the specific customer who placed it, using the 'customers' model.

Enables retrieving customer details (e.g., name, email, country) for order analysis.

cardinality: many-to-one

type: LEFT

# - name: products # Example linking to a products model

# source_col: product_id # Assuming a product_id field in orders

# ref_col: id # Assuming id is PK in products

# description: Links the order line to the specific product.

# cardinality: many-to-one

# type: LEFT

Customers

Top companies use Buster to increase data team productivity

Join top companies who leverage Buster to enhance their dbt workflows & get more from their data.

"A lot of data engineers think self serve is a myth. This is actually self serve, for real for real."

Alex Ahlstrom

Director of Data Analytics @ Angel Studios

"Buster frees me up from the ad-hoc tasks I always had to do, and let's me focus on longer term goals."

Landen Bailey

Data Engineer @ Redo

Enterprise-grade security

Buster is built with enterprise-grade security practices. This includes state-of-the-art encryption, safe and reliable infrastructure partners, and independently verified security controls.

SOC 2 compliance

Buster has undergone a Service Organization Controls audit (SOC 2 Type II).

HIPAA compliance

Privacy & security measures to ensure that PHI is appropriately safeguarded.

Permissions & governance

Provision users, enforce granular permissions, & implement robust governance with ease.

IP protection policy

Neither Buster nor our model partners train models on customer data.

Code-based & git-native

Buster is code based and operates within your own repo.

Open-source

Buster is completely open-source. It's free to spin up locally.

Watch a demo

A new framework for self-serve, purpose-built for dbt

Turn your dbt project into an AI data analyst. Empower everyone at your company to analyze & visualize data on their own.

Watch demo

Watch demo

Watch demo

Start using AI agents in your analytics workflows today