ds@mcpanalytics.aiEmail your data and your question and get an answer about your own data, with the method shown.Email your data and question. Get an answer.

How to Use B2B vs B2C Analysis in Amazon: Step-by-Step Tutorial

By MCP Analytics Team | Published , updated

Understand how business buyers differ from individual consumers on Amazon

Introduction to B2B vs B2C Analysis

If you're selling on Amazon, understanding the difference between your business (B2B) and individual consumer (B2C) customers can inform your pricing, inventory and marketing choices. Business buyers may have different purchasing patterns, order volumes, and product preferences compared to individual consumers. This analysis can reveal opportunities to tailor your pricing, inventory, and marketing strategies for each segment.

By analyzing the behavioral differences between B2B and B2C customers, you can:

In this tutorial, you'll learn how to perform a B2B vs B2C analysis using your Amazon sales data. We'll cover three key questions: What percentage of your orders are B2B? Do business buyers spend more? And what products do businesses prefer? The tables in Steps 1 to 3 come from a small synthetic data set generated for this tutorial (4 made-up products, 900 orders), not a real store. That data set and its generator are not published, so treat those tables as illustrations of the format. The seeded example below is fully reproducible, and your numbers will differ.

Steps: 1 Share of orders that are B2B, 2 Do business buyers spend more, 3 Which products business buyers prefer. The script below is a small simulated run showing why every count in this tutorial is of distinct orders, not export rows.

A Small Simulated Example: Item Rows Are Not Orders

An Amazon export has one row per order item, and one order can have several rows, even for the same SKU. This example is simulated (numpy seed 3), not Amazon data: 400 orders with 1 to 3 items each, where B2B orders lean toward SUPPLY-200 and B2C orders toward MUG-100. It counts each SKU's B2B share twice, once from item rows and once from distinct orders.

import numpy as np
import pandas as pd

rng = np.random.default_rng(3)   # seed stated: 3
skus = ["SUPPLY-200", "MUG-100"]
rows = []
for n in range(400):
    biz = rng.random() < 0.25
    for _ in range(rng.integers(1, 4)):
        # B2B orders lean to SUPPLY-200; B2C orders to MUG-100
        p = 0.8 if biz else 0.3
        sku = skus[0] if rng.random() < p else skus[1]
        # two item rows of the same SKU can sit in one order
        rows.append((f"O{n:03d}", biz, sku))
        if rng.random() < 0.25:
            rows.append((f"O{n:03d}", biz, sku))

df = pd.DataFrame(rows, columns=["order_id", "biz", "sku"])
df["type"] = df["biz"].map({True: "B2B", False: "B2C"})

rows_ct = df.pivot_table(index="sku", columns="type",
                         values="order_id", aggfunc="count")
uniq = df.drop_duplicates(["order_id", "sku", "type"])
ord_ct = uniq.pivot_table(index="sku", columns="type",
                          values="order_id", aggfunc="count")

print("item rows:", len(df), "| distinct orders:",
      df["order_id"].nunique())
for name, t in [("item rows", rows_ct), ("distinct orders", ord_ct)]:
    share = (t["B2B"] / t.sum(axis=1) * 100).round(1)
    print(f"\nCounted as {name}:")
    print(t.join(share.rename("B2B %")).to_string())
item rows: 983 | distinct orders: 400

Counted as item rows:
            B2B  B2C  B2B %
sku                        
MUG-100      50  490    9.3
SUPPLY-200  180  263   40.6

Counted as distinct orders:
            B2B  B2C  B2B %
sku                        
MUG-100      33  253   11.5
SUPPLY-200   82  162   33.6

The 983 item rows come from 400 orders. Counting rows gives SUPPLY-200 a B2B share of 40.6%, while counting distinct orders gives 33.6%, because in this simulation B2B orders put more of their rows on SUPPLY-200 than B2C orders do. The SQL below counts DISTINCT order_id; in a spreadsheet, remove duplicate order, SKU and customer-type combinations before you count. This simulation cannot tell you how many rows per order your own export has.

Prerequisites and Data Requirements

What You'll Need

Before starting this tutorial, ensure you have the following:

Understanding Your Data Fields

Column names vary by report. This tutorial assumes columns like these, one row per order item; rename them to match your file:

Field Name Description Example Value
order-id Unique identifier for each order 112-3456789-0123456
is-business-order Boolean indicating if order is B2B true / false
order-item-id Unique identifier for each item in order 34567890123456
purchase-date Date and time of purchase 2024-01-15T14:23:45Z
item-price Price of individual item 29.99
sku Stock Keeping Unit (product identifier) WIDGET-001-BLK
product-name Product title (some order reports include it; if yours does not, drop product_name from the Step 3 SQL or join titles from your own listing report) Premium Widget Black
quantity-purchased Number of units ordered 5

Exporting Your Data from Amazon

Export your orders from Seller Central as a CSV or tab-delimited file, covering the period you want to study. Which report holds a business-order flag, and what it is called, depends on the report type and marketplace; check the current Seller Central documentation for the report you choose, and confirm that the flag column exists in your own export before you start.

Loading the File for the SQL Queries

The SQL examples assume a table named amazon_orders with one row per order item. Import your export into a database (for example with your database's CSV import tool) and rename the headers from hyphens to underscores: order-id becomes order_id, order-item-id becomes order_item_id, purchase-date becomes purchase_date, item-price becomes item_price, quantity-purchased becomes quantity_purchased, is-business-order becomes is_business_order, and likewise sku and product_name. Load prices and quantities as numbers and the date as a date or timestamp. The queries compare is_business_order as it was imported, so check whether it holds true and false, or another value, in your file.

Step 1: What Percentage of Orders Are B2B?

The first step in your analysis is understanding the composition of your customer base. Calculating the percentage of B2B versus B2C orders gives you a baseline understanding of your business mix.

Why This Matters

Knowing your B2B percentage helps you:

Performing the Analysis

Using SQL

-- Calculate order counts by customer type
SELECT
    is_business_order,
    COUNT(DISTINCT order_id) as order_count,
    ROUND(COUNT(DISTINCT order_id) * 100.0
          / SUM(COUNT(DISTINCT order_id)) OVER (), 2) as percentage
FROM amazon_orders
-- PostgreSQL syntax; adjust the date filter for your database
WHERE purchase_date >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY is_business_order
ORDER BY is_business_order DESC;

Using Excel/Google Sheets

  1. Create a new column labeled "Customer Type"
  2. Use formula: =IF(B2="true","B2B","B2C") (assuming is-business-order is in column B)
  3. The export has one row per order item, so counting its rows counts items, not orders. Copy the order-id and Customer Type columns to a new sheet and remove duplicate order-ids to get one row per order
  4. On that sheet, create a pivot table with Customer Type in Rows and Count of order-id in Values
  5. For the percentage, either set the Values field to show as a percentage of the grand total (the "Show values as" option in the pivot table settings of Excel and Google Sheets), or type a formula next to the pivot: with counts in B2 and B3, use =B2/SUM($B$2:$B$3) and format the cell as a percentage

Expected Output

On the synthetic data set described above, the order-count query prints:

Customer Type | Orders | Share
--------------+--------+--------
B2B           |    243 | 27.00%
B2C           |    657 | 73.00%
--------------+--------+--------
Total         |    900 | 100.00%

Interpreting the Results

Step 2: Do Business Buyers Spend More?

Understanding the spending patterns between B2B and B2C customers shows how much revenue each segment brings in your data. Even when B2B is a smaller share of orders, it can contribute a larger share of revenue.

Key Metrics to Calculate

Performing the Analysis

Using SQL

-- Compare spending metrics by customer type (order level first)
SELECT
    is_business_order,
    COUNT(*) AS order_count,
    SUM(order_total) AS total_revenue,
    ROUND(AVG(order_total), 2) AS avg_order_value,
    ROUND(AVG(total_units), 1) AS avg_units_per_order,
    ROUND(SUM(order_total) * 100.0 /
          SUM(SUM(order_total)) OVER (), 2) AS revenue_percentage
FROM (
    SELECT
        order_id,
        is_business_order,
        SUM(item_price * quantity_purchased) AS order_total,
        SUM(quantity_purchased) AS total_units
    FROM amazon_orders
    WHERE purchase_date >= CURRENT_DATE - INTERVAL '90 days'
    GROUP BY order_id, is_business_order
) order_summary
GROUP BY is_business_order
ORDER BY is_business_order DESC;

Using Excel/Google Sheets

  1. On the item sheet, add a Line Revenue column (item-price times quantity-purchased)
  2. On the one-row-per-order sheet from Step 1, add Order Total: =SUMIF(order_id_range, order_id, line_revenue_range), and Units the same way from quantity-purchased
  3. Create a pivot table on the order sheet with Customer Type in Rows and, as Values, Count of Order-ID, Sum of Order Total, Average of Order Total and Average of Units
  4. Calculate revenue percentage for each segment

Expected Output

On the same synthetic data set, the spending query prints:

Type  | Orders |    Revenue |     AOV | Units | Rev %
------+--------+------------+---------+-------+-------
B2B   |    243 | $45,330.00 | $186.54 |  10.2 | 55.64%
B2C   |    657 | $36,140.00 |  $55.01 |   2.5 | 44.36%
------+--------+------------+---------+-------+-------
Total |    900 | $81,470.00 |  $90.52 |   4.6 | 100.00%

Interpreting the Results

Average Order Value Analysis:

Revenue Contribution Analysis:

Strategic Insights

If your analysis shows B2B customers have significantly higher AOV:

Step 3: What Products Do Businesses Prefer?

Different customer segments often prefer different products from your catalog. Knowing these preferences can help you plan inventory and promotions, and decide whether business-specific products are worth testing.

Why Product Preference Matters

Performing the Analysis

Using SQL

-- Identify top products by customer type
WITH product_metrics AS (
    SELECT
        sku,
        product_name,
        is_business_order,
        COUNT(DISTINCT order_id) as orders,
        SUM(quantity_purchased) as units_sold,
        SUM(item_price * quantity_purchased) as revenue
    FROM amazon_orders
    WHERE purchase_date >= CURRENT_DATE - INTERVAL '90 days'
    GROUP BY sku, product_name, is_business_order
),
product_totals AS (
    SELECT
        sku,
        SUM(orders) as total_orders,
        SUM(units_sold) as total_units
    FROM product_metrics
    GROUP BY sku
)
SELECT
    pm.sku,
    pm.product_name,
    pm.is_business_order,
    pm.orders,
    pm.units_sold,
    pm.revenue,
    ROUND(pm.orders * 100.0 / pt.total_orders, 2) as order_percentage,
    ROUND(pm.units_sold * 100.0 / pt.total_units, 2) as unit_percentage
FROM product_metrics pm
JOIN product_totals pt ON pm.sku = pt.sku
WHERE pt.total_orders >= 20  -- Filter for products with significant volume
ORDER BY pm.revenue DESC
LIMIT 50;

Using Excel/Google Sheets

  1. Orders first: copy the order-id, sku and Customer Type columns to a new sheet and remove duplicate rows across all three columns, so each order counts once per SKU. Make a pivot table there with SKU in Rows, Customer Type in Columns and Count of order-id in Values
  2. Units and revenue: on the item sheet, make a second pivot with SKU in Rows, Customer Type in Columns, and Sum of quantity-purchased and Sum of Line Revenue in Values
  3. Calculate the percentage of each SKU's orders that are B2B from the first pivot (B2B count divided by the row total)
  4. Sort by total revenue to focus on top products
  5. Identify products with B2B percentage significantly different from your overall average

Expected Output

On the same synthetic data set, the product query (without its volume filter) gives these figures, shown here regrouped by SKU with a Type label, without the query's product_name and unit_percentage columns (the products are Premium Widget Black, Home Gadget Set, Office Supply Pack and Travel Mug, in the order listed). The last column is the row's own segment's share of that SKU's orders, so the two rows of a SKU add to 100%.

SKU        | Type | Orders | Units |    Revenue | SKU share
-----------+------+--------+-------+------------+----------
WIDGET-001 | B2B  |    159 |   929 | $18,580.00 |     35.5%
WIDGET-001 | B2C  |    289 |   446 |  $8,920.00 |     64.5%
GADGET-055 | B2B  |     32 |   181 |  $5,430.00 |      7.7%
GADGET-055 | B2C  |    385 |   575 | $17,250.00 |     92.3%
SUPPLY-200 | B2B  |    157 |   965 | $15,440.00 |     55.3%
SUPPLY-200 | B2C  |    127 |   190 |  $3,040.00 |     44.7%
MUG-100    | B2B  |     66 |   392 |  $5,880.00 |     17.4%
MUG-100    | B2C  |    313 |   462 |  $6,930.00 |     82.6%

Interpreting the Results

Identifying Product Segments:

Strategic Actions Based on Product Preferences:

For B2B-Dominant Products:

  • Consider quantity discounts for business buyers, where Amazon offers them for your account
  • Highlight bulk packaging and business-friendly features in listings
  • Ensure higher inventory levels to accommodate larger orders
  • Consider creating business-specific variations (e.g., higher quantity packs)
  • Add business pricing for orders of 10+ units

For B2C-Dominant Products:

  • Focus on consumer-friendly features in product descriptions
  • Invest in consumer marketing and promotions
  • Optimize for individual purchase sizing and packaging
  • If recurring consumer purchases look likely, check Amazon's current documentation on subscription options for your products

Cross-Selling Opportunities

Look for patterns in what products are purchased together by each segment. Business buyers might purchase your office supplies alongside your widgets, while consumers buy gadgets with accessories. Use your own order data to see which products appear together before you change listings.

Interpreting Your Results: Putting It All Together

Now that you've completed all three analysis steps, it's time to synthesize your findings into actionable insights. Let's look at a complete example scenario:

Sample Complete Analysis

Example summary (synthetic data)

  • B2B Order Percentage: 27.00%
  • B2B Revenue Contribution: 55.64%
  • B2B Average Order Value: $186.54 (vs. B2C: $55.01)
  • B2B order value against all orders: 2.06 times the overall average of $90.52
  • Product Insights: 1 of the 4 example SKUs (SUPPLY-200) has a B2B order share above 50%

Strategic Recommendations Based on Results

Scenario 1: High B2B Revenue Contribution (30%+ of revenue)

The 30% cut-off here is an example, not a benchmark. If business customers contribute a large share of your revenue, they are a segment worth planning for:

  1. Check Amazon's current documentation on selling to business buyers and whether you are enrolled
  2. Implement business pricing for high-volume purchases
  3. Optimize B2B-popular products with bulk packaging and business-focused descriptions
  4. Increase inventory for the SKUs with the highest B2B order share, to handle larger orders
  5. Consider B2B-specific products or variations (e.g., 100-count packs vs. 10-count)

Scenario 2: Low B2B Percentage (Under 15%)

If business customers represent a small portion of your sales, you have growth opportunities:

  1. Analyze why: Are your products consumer-focused, or are you not reaching business buyers?
  2. Test business pricing on your top-selling products
  3. Add business-friendly features to product listings (bulk discounts, tax exemption compatibility)
  4. Create multi-packs or bundle offerings that appeal to businesses
  5. Monitor results over 90 days to see if B2B percentage increases

Scenario 3: High AOV Disparity (3x+ difference)

If B2B customers spend significantly more per order:

  1. Protect your B2B relationships with excellent customer service
  2. Create VIP programs or special offers for top business accounts
  3. Ensure stock availability to avoid disappointing high-value customers
  4. Consider account management for your largest business customers

Setting Up Ongoing Monitoring

B2B vs B2C analysis isn't a one-time exercise. Set up a quarterly review process:

Common Issues and Solutions

Issue 1: Missing is-business-order Field

Problem: Your order report doesn't include the is-business-order field.

Solution:

Issue 2: All Orders Showing as B2C

Problem: Every order has is-business-order = false.

Solution:

Issue 3: Inconsistent B2B Percentages Across Time Periods

Problem: B2B percentage varies wildly month-to-month (e.g., 10% one month, 40% the next).

Solution:

Issue 4: Unable to Calculate Average Order Value

Problem: Your data shows line items, not order-level totals.

Solution:

Issue 5: Product Analysis Shows All Products Balanced

Problem: Every product shows approximately the same B2B percentage as your overall average.

Solution:

Issue 6: Data Export Size Limits

Problem: Your order volume is too large for Excel (over 1 million rows).

Solution:

Next Steps with Amazon Business

After completing your B2B vs B2C analysis, you're equipped with actionable insights. Here's how to move forward:

Immediate Actions (This Week)

  1. Check Amazon's current documentation on selling to business buyers and whether you are enrolled
  2. Enable business pricing for the products with the highest B2B order share
  3. Update product listings for B2B-popular items to highlight bulk purchasing and business benefits
  4. Check inventory levels for B2B-preferred products to ensure you can fulfill larger orders

Short-Term Actions (This Month)

  1. Create quantity-based pricing tiers (e.g., 5% off orders of 10+, 10% off orders of 50+)
  2. Develop business-focused product variations (bulk packs, industrial packaging)
  3. Optimize your Amazon Business profile with business-specific imagery and descriptions
  4. Save your queries or spreadsheet so you can re-run them on each month's export
  5. Analyze your competition to see what business pricing they offer

Long-Term Actions (This Quarter)

  1. Develop a B2B growth strategy based on your analysis insights
  2. Consider B2B-specific product development if you've identified clear business needs
  3. Participate in Amazon Business promotions to attract new business customers
  4. Implement account management for your top business customers
  5. Review and optimize quarterly based on performance data

Advanced Analysis Techniques

Once you've mastered the basics, consider these advanced analyses:

Resources for Further Learning

Run It on Your Own Amazon Export

Export your orders from Amazon as a CSV and upload it at MCP Analytics, then ask the question in plain language; the report names the method. Nothing connects to your Amazon account.

Try it on your data

Conclusion

Understanding the difference between your B2B and B2C customers can inform how you price, stock and list your products. By following this tutorial, you've learned how to:

Business customers can account for a larger share of revenue than of orders when their orders are bigger, as in the example; repeat purchases would need customer identifiers that an order export may not carry. By tailoring your Amazon strategy to serve both B2B and B2C customers effectively, you can test changes to inventory, pricing and product development against your own results.

Set up a regular cadence to review these metrics (quarterly is recommended) and adjust your strategy as your business evolves. The insights you gain from this analysis will help you make data-driven decisions that grow both segments of your Amazon business.

Ready to take action? Start with Step 1 today and discover what percentage of your Amazon orders are coming from business customers. The insights might surprise you!

Explore more: Amazon Seller Analytics: all tools, tutorials, and guides →

Not sure which plan? Compare plans →

Your turn

Bring your own data and the question you actually need answered.

MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai