Etsy Listing Performance: Comparison & Analysis
By MCP Analytics Team | Published , updated
Introduction to Listing Performance Comparison
As an Etsy seller, you're constantly juggling dozens or even hundreds of listings, each competing for your limited time and marketing budget. The critical question every shop owner faces is: Which listings deserve your attention and which are holding you back?
Listing performance comparison is the systematic process of evaluating your Etsy products against each other to identify winners, optimize underperformers, and make informed decisions about where to invest your resources. Without this analysis, you're essentially flying blind, promoting listings based on gut feeling rather than hard data.
This tutorial will walk you through the complete process of analyzing your Etsy listing performance using data-driven methods. You'll learn how to identify which products generate the most revenue, which have the best conversion rates, and which should be promoted, optimized, or retired. By the end, you'll have a clear action plan for maximizing your shop's profitability.
Why Listing Performance Comparison Matters
Consider this hypothetical scenario: You have two listings with similar view counts. Listing A generates $500 per month while Listing B generates $2,000. If you're spending equal effort promoting both, you're leaving money on the table. Listing performance comparison helps you:
- Maximize ROI: Focus marketing spend on listings that deliver the best returns
- Optimize inventory: Stock more of what sells and less of what doesn't
- Improve shop efficiency: Retire underperforming listings that dilute your shop's appeal
- Identify trends: Spot patterns in what customers want before competitors do
- Make confident decisions: Replace guesswork with numbers from your own orders
Statistical methods like A/B testing with statistical significance can help you check whether performance differences between listings are meaningful or just random variation.
Step 1: Prerequisites and Data Requirements
Before diving into listing performance analysis, you need to ensure you have the right data and tools in place. Here's what you'll need:
Required Data
- Order History: At least 30 days of sales data. A longer window gives more orders per listing and so less noisy comparisons, but no number of days guarantees that a difference is statistically significant: that depends on the counts and how much they vary.
- Listing Information: Product titles, SKUs, categories, and pricing
- Traffic Metrics: Views per listing (see Etsy's help for where to find them). An order export does not contain views, so this is a second file that you join to your orders by listing ID (Step 2).
- Cost Data: Material costs, shipping costs, and fees per order for profit margin analysis. These come from your own records, not from Etsy's order file.
- Inventory Levels: Current stock quantities (optional but helpful)
Accessing Your Etsy Data
Etsy's help article on downloading sold orders (linked under Sources, read on 2026-11-02) gives these steps. Menus change, so follow Etsy's page if yours differs:
1. Sign in to Etsy and open Shop Manager
2. Go to Settings, then Options
3. Open the Download Data tab and go to Orders
4. Pick the CSV Type, the Month and the Year
(leave Month empty to get a whole year)
5. Select Download CSV
Etsy's article says the file lists your orders and can include the payment method, item price, item title and SKU numbers if you added them. It does not list the column names, so we do not list them here either. Open your own file and check which columns it has, and whether the price is per item or per order. The article does not cover listing views, so check Etsy's help for where to find those.
Data Quality Checklist
Before proceeding, verify your data meets these criteria:
- ✓ No missing order dates or transaction IDs
- ✓ All prices are in the same currency
- ✓ Product names are consistent (not changed mid-period)
- ✓ Refunds and cancellations are clearly marked
- ✓ Enough sales per listing: listings with only a few sales give noisy comparisons. This tutorial uses 10 orders as a working minimum, which is a rule of thumb and not a tested threshold.
Step 2: Join Orders, Views and Costs
A listing comparison needs three things per listing: orders and revenue (from the order export), views (a separate source), and your cost per order. They live in different files, so join them on the listing ID and check that nothing fell out of the join. The figures on this page come from a synthetic five-listing shop generated for this tutorial, not from a real shop, so your numbers will differ.
import pandas as pd
# Synthetic shop with five listings, generated for this tutorial. Replace each frame with your own data:
# orders: your order export (one row per order line, with the listing id and the price paid)
# views : listing views, which you get separately
# costs : your own cost per order for each listing
listings = pd.DataFrame({
'listing_id': [101, 102, 103, 104, 105],
'title': ['Custom Pet Portrait Canvas', 'Personalized Wedding Sign', 'Vintage-Style Recipe Cards',
'Hand-Painted Ornament Set', 'Digital Birth Announcement'],
'price': [50.0, 100.0, 10.0, 30.0, 10.0],
'order_count': [97, 32, 268, 65, 142],
})
orders = listings.loc[listings.index.repeat(listings['order_count']),
['listing_id', 'title', 'price']].reset_index(drop=True) # one row per order
views = pd.DataFrame({'listing_id': [101, 102, 103, 104, 105], 'views': [3250, 1400, 9000, 2600, 4100]})
costs = pd.DataFrame({'listing_id': [101, 102, 103, 104, 105], 'cost_per_order': [30.0, 111.75, 6.5, 21.0, 3.2]})
table = (orders.groupby(['listing_id', 'title'], as_index=False)
.agg(orders=('price', 'size'), revenue=('price', 'sum'))
.merge(views, on='listing_id', how='left')
.merge(costs, on='listing_id', how='left'))
print('order rows:', len(orders), '| listings:', len(table))
print('listings with no views row:', int(table['views'].isna().sum()))
print('listings with no cost row:', int(table['cost_per_order'].isna().sum()))
print('total revenue:', table['revenue'].sum())
Expected output:
order rows: 604 | listings: 5
listings with no views row: 0
listings with no cost row: 0
total revenue: 14100.0
If the two "no ... row" counts are not zero, those listings drop out of the views or cost columns: fix the IDs before going on.
A Tiny Example You Can Check by Hand
The three tables below are invented for this page: 7 order lines, 3 listings, 1 refunded line. The column names are ours, not Etsy's, so rename them to match your own file. The views and costs are made up. Run the code block below, then compare its output with the "Expected output" block that follows it.
import pandas as pd, io
lines = pd.read_csv(io.StringIO("""order_id,listing,quantity,item_price,status
1001,Mug Print,2,20.00,Paid
1002,Card Pack,5,6.00,Paid
1003,Mug Print,1,20.00,Paid
1004,Poster,1,35.00,Refunded
1005,Card Pack,3,6.00,Paid
1006,Poster,2,35.00,Paid
1007,Mug Print,1,20.00,Paid
"""))
views = pd.read_csv(io.StringIO("""listing,views
Mug Print,120
Card Pack,200
Poster,50
"""))
costs = pd.read_csv(io.StringIO("""listing,unit_cost
Mug Print,8.00
Card Pack,2.00
Poster,22.00
"""))
paid = lines[lines["status"] == "Paid"].copy()
paid["revenue"] = paid["quantity"] * paid["item_price"]
t = (paid.groupby("listing")
.agg(orders=("order_id", "nunique"), units=("quantity", "sum"), revenue=("revenue", "sum"))
.reset_index()
.merge(views, on="listing", how="left")
.merge(costs, on="listing", how="left"))
t["conversion_pct"] = t["orders"] / t["views"] * 100
t["profit"] = t["revenue"] - t["units"] * t["unit_cost"]
t["margin_pct"] = t["profit"] / t["revenue"] * 100
print(t[["listing", "orders", "units", "revenue", "views", "conversion_pct", "profit", "margin_pct"]].round(1).to_string(index=False))
print("shop margin:", round(t["profit"].sum() / t["revenue"].sum() * 100, 1))
Expected output (from the code block above):
listing orders units revenue views conversion_pct profit margin_pct
Card Pack 2 8 48.0 200 1.0 32.0 66.7
Mug Print 3 4 80.0 120 2.5 48.0 60.0
Poster 1 2 70.0 50 2.0 26.0 37.1
shop margin: 53.5
Check the Mug Print by hand. Three paid orders (1001, 1003, 1007) hold 2 + 1 + 1 = 4 units at $20.00, so revenue is $80.00. Costs are 4 x $8.00 = $32.00, so profit is $48.00, which is 60.0% of $80.00. Conversion is 3 orders / 120 views = 2.5%. The refunded Poster line (1004) is left out, so the Poster has 1 order and 2 units: $70.00 revenue, $44.00 cost, $26.00 profit (37.1%). Across the shop, revenue is 48 + 80 + 70 = $198.00 and profit is 32 + 48 + 26 = $106.00, a 53.5% margin. These seven rows are far too few to trust a real comparison. They are here so you can check the arithmetic.
Step 3: Configure Your Comparison Parameters
To get the most actionable insights, you need to customize the analysis parameters based on your specific business goals.
Selecting Key Metrics
Choose which metrics matter most for your business strategy:
Primary Metrics (always include):
- Total Revenue: Sum of all sales for each listing
- Order Count: Number of times the listing was purchased
- Average Order Value: Revenue ÷ Order Count
Secondary Metrics (choose 2-3):
- Conversion Rate: Orders ÷ Views × 100
- Revenue per View: Total Revenue ÷ Total Views
- Profit Margin: (Revenue - Costs) ÷ Revenue × 100
- Days Since Last Sale: Identify stagnant inventory
- Growth Rate: Compare current period to previous period
Setting Time Periods for Comparison
The time period you choose dramatically affects your results:
- 30 Days: Best for seasonal products or recent launches; shows current trends
- 90 Days: A common middle choice; longer than a seasonal swing in a month, shorter than a year
- 365 Days: Good for identifying annual patterns and evergreen performers
- Custom Periods: Use for comparing specific seasons (e.g., Q4 of this year vs Q4 of last year)
Applying Filters
Narrow your analysis to specific segments:
Filter Options:
- Category: Compare only within product categories
- Price Range: Group by similar price points ($10-$25, $25-$50, etc.)
- Listing Age: New listings (0-90 days) vs established (90+ days)
- Promotion Status: Compare promoted vs organic performance
- Seasonal Tags: Holiday items, summer products, etc.
For example, comparing a $15 printable download to a $150 handmade item isn't particularly useful: filter by category or price range for more relevant insights.
Step 4: Analyze Revenue Performance
Revenue analysis reveals which listings are generating the most income for your shop. However, highest revenue doesn't always mean best performance, context matters.
Interpreting Revenue Rankings
Sort the joined table by total revenue. The block below adds average order value (AOV) and each listing's share of the shop's revenue; the shares add up to 100% because the example shop has only these five listings.
rank = table.sort_values('revenue', ascending=False).reset_index(drop=True)
rank.index += 1
rank['aov'] = (rank['revenue'] / rank['orders']).round(2)
rank['pct_of_total'] = (100 * rank['revenue'] / rank['revenue'].sum()).round(1)
print(rank[['title', 'revenue', 'orders', 'aov', 'pct_of_total']].to_string())
print('sum of pct_of_total:', round(rank['pct_of_total'].sum(), 1))
Expected output:
title revenue orders aov pct_of_total
1 Custom Pet Portrait Canvas 4850.0 97 50.0 34.4
2 Personalized Wedding Sign 3200.0 32 100.0 22.7
3 Vintage-Style Recipe Cards 2680.0 268 10.0 19.0
4 Hand-Painted Ornament Set 1950.0 65 30.0 13.8
5 Digital Birth Announcement 1420.0 142 10.0 10.1
sum of pct_of_total: 100.0
Key Insights to Extract
Look beyond the raw revenue numbers:
- Concentration Risk: If one listing generates a large share of revenue (here 34.4%; 30% is a rule of thumb, not a threshold), your shop depends on that product staying popular
- Volume vs. Value: The Recipe Cards (#3) have the most orders but middle-tier revenue, it brings in many buyers, so an upsell or bundle is worth testing
- High AOV Opportunities: The Wedding Sign (#2) has fewer orders but a high price; check its margin in Step 6 before spending on advertising
- Consistency: Listings with steady daily sales are more reliable than those with sporadic large orders
Revenue Trend Analysis
To see trends, group the order rows by week or month (with pd.Grouper on the sale date) and compare listings over the same weeks. Daily totals are noisy for listings with few orders; weekly or monthly totals smooth that out.
A declining listing has many possible causes (season, competition, listing changes); the trend tells you where to look, not which cause it is.
Step 5: Evaluate Conversion Rates
Conversion rate, the percentage of viewers who actually purchase, is often more important than raw views. A listing with 1,000 views and 10 sales (1% conversion) converts less often than one with 100 views and 5 sales (5% conversion), although 5 sales is too few to be sure the difference is more than chance.
Calculating Conversion Rates
Conversion rate is orders divided by views, times 100. Revenue per view combines conversion and price.
rank['conversion_pct'] = (100 * rank['orders'] / rank['views']).round(2)
rank['revenue_per_view'] = (rank['revenue'] / rank['views']).round(2)
print(rank[['title', 'views', 'orders', 'conversion_pct', 'revenue_per_view']].to_string())
Expected output:
title views orders conversion_pct revenue_per_view
1 Custom Pet Portrait Canvas 3250 97 2.98 1.49
2 Personalized Wedding Sign 1400 32 2.29 2.29
3 Vintage-Style Recipe Cards 9000 268 2.98 0.30
4 Hand-Painted Ornament Set 2600 65 2.50 0.75
5 Digital Birth Announcement 4100 142 3.46 0.35
For the Pet Portrait Canvas, 97 / 3,250 x 100 = 2.98%. The Wedding Sign converts less often (2.29%) but earns the most per view (2.29 against 1.49), because its price is twice as high, which more than offsets its lower conversion (revenue per view is conversion times price). Which of these matters depends on what you are optimizing, and with 32 orders the 2.29% is itself imprecise.
Benchmarks
Etsy conversion rates vary by category, price and traffic source, and we have no sourced benchmark to give you, so this tutorial does not offer ranges such as "good" or "poor". Compare listings against each other within your shop, as described under "Benchmark Against Your Shop" in Step 8.
Diagnosing Low Conversion Rates
If a listing has high views but low conversions, investigate these common issues:
Low Conversion Checklist:
□ Photos: Are they professional quality? Show scale? Include lifestyle shots?
□ Pricing: Are you competitive with similar listings?
□ Shipping: Are costs reasonable and clearly stated?
□ Description: Does it answer common questions? Include dimensions/materials?
□ Reviews: Do you have any, and what do they say?
□ SEO: Are you attracting the wrong audience with mismatched keywords?
Step 6: Assess Profit Margins
Revenue is vanity; profit is sanity. A listing that generates $5,000 in revenue but only $500 in profit (10% margin) is less valuable than one generating $2,000 in revenue with $1,000 in profit (50% margin).
Calculating True Profit
To accurately assess profitability, account for all costs:
Total Costs Per Order:
+ Material Costs (supplies, packaging)
+ Labor Costs (your time × hourly rate)
+ Etsy Transaction Fee (rate varies, check your fee statement)
+ Payment Processing Fee (rate varies by country, check your statement)
+ Shipping Costs (if you offer free shipping)
+ Advertising Costs (Etsy Ads, Google, etc.)
+ Overhead Allocation (portion of shop expenses)
+ Listing fees (charged per listing, not per sale: spread them over the units sold)
= Total Cost
Profit Margin = ((Revenue - Total Costs) ÷ Revenue) × 100
Example Profit Calculation
The fee rates below (6.5% and 3% + $0.25) are assumptions for the illustration. Take your real rates from Etsy's fee pages and your payment account statements. This example leaves out listing fees and overhead; add them if you track them.
Listing: Personalized Wedding Sign
Selling Price: $100.00
Costs:
- Materials (wood, paint, hardware): $25.00
- Labor (3 hours × $20/hr): $60.00
- Etsy Transaction Fee (assumed 6.5%): $6.50
- Payment Processing (assumed 3% + $0.25): $3.25
- Packaging & Shipping: $12.00
- Allocated Advertising: $5.00
Total Costs: $111.75
Profit per Sale: $100.00 - $111.75 = -$11.75
Profit Margin: -11.75%
The same figures feed the table below: the Wedding Sign has a cost per order of 111.75 (Step 2), 32 orders, and so a total profit of 32 x -11.75 = -376.00.
rank['profit'] = (rank['revenue'] - rank['orders'] * rank['cost_per_order']).round(2)
rank['margin_pct'] = (100 * rank['profit'] / rank['revenue']).round(1)
print(rank[['title', 'revenue', 'profit', 'margin_pct']].to_string())
shop_margin = 100 * rank['profit'].sum() / rank['revenue'].sum()
print('shop margin:', round(shop_margin, 1), '| total profit:', round(rank['profit'].sum(), 2))
Expected output:
title revenue profit margin_pct
1 Custom Pet Portrait Canvas 4850.0 1940.0 40.0
2 Personalized Wedding Sign 3200.0 -376.0 -11.8
3 Vintage-Style Recipe Cards 2680.0 938.0 35.0
4 Hand-Painted Ornament Set 1950.0 585.0 30.0
5 Digital Birth Announcement 1420.0 965.6 68.0
shop margin: 28.7 | total profit: 4052.6
With these assumed costs, the Wedding Sign loses 11.75 on each sale even though it has the second-highest revenue, so it is a candidate for a price or cost review. The table shows a shop margin of 28.7%: total profit of 4,052.60 on revenue of 14,100.00.
Profit Optimization Strategies
For low-margin listings, consider these approaches:
- Increase Prices: Test a small price increase on one listing and compare orders before and after; how buyers react depends on the product
- Reduce Costs: Find cheaper suppliers, streamline production, batch similar orders
- Upsell/Bundle: Add premium options or create bundles to increase AOV
- Retire Low Performers: If optimization isn't feasible, discontinue the listing
Step 7: Make Data-Driven Decisions
Now comes the most crucial step: translating your analysis into action. Based on your listing performance data, you'll categorize each listing into one of four strategic buckets.
The Four-Quadrant Framework
Place each listing on two axes: revenue (at or above the shop median, or below) and profit margin (at or above the shop-wide margin, or below). The cut-offs are a convention for sorting, not a statistical test.
median_revenue = rank['revenue'].median()
rank['revenue_side'] = rank['revenue'].ge(median_revenue).map({True: 'High Rev', False: 'Low Rev'})
rank['margin_side'] = rank['margin_pct'].ge(shop_margin).map({True: 'High Margin', False: 'Low Margin'})
print('median revenue:', median_revenue, '| shop margin:', round(shop_margin, 1))
print(rank[['title', 'revenue_side', 'margin_side']].to_string())
Expected output:
median revenue: 2680.0 | shop margin: 28.7
title revenue_side margin_side
1 Custom Pet Portrait Canvas High Rev High Margin
2 Personalized Wedding Sign High Rev Low Margin
3 Vintage-Style Recipe Cards High Rev High Margin
4 Hand-Painted Ornament Set Low Rev High Margin
5 Digital Birth Announcement Low Rev High Margin
In this example, two listings are Stars (Pet Portrait, Recipe Cards), one is a Cash Cow (Wedding Sign), two are Rising Stars (Ornament Set, Birth Announcement) and none is a Dog. The Ornament Set is a Rising Star only narrowly: its 30.0% margin is just above the 28.7% shop margin. The diagram shows what each quadrant usually suggests:
HIGH PROFIT MARGIN
|
Stars | Rising Stars
(High Rev, High Profit)| (Low Rev, High Profit)
→ Promote heavily | → Scale up
→ Maintain quality | → Increase visibility
|
---------------------------|---------------------------
|
Cash Cows | Dogs
(High Rev, Low Profit) | (Low Rev, Low Profit)
→ Optimize costs | → Retire
→ Increase prices | → Replace
|
LOW PROFIT MARGIN
Strategic Actions by Category
Stars (High Revenue, High Profit):
- Put more of your marketing budget here, and compare the result with the previous period
- Create variations and complementary products
- Ensure consistent inventory: never run out
- Study what makes them successful and replicate
Rising Stars (Low Revenue, High Profit):
- These are hidden gems that need visibility
- Invest in Etsy Ads or external promotion
- Improve SEO and listing optimization
- Consider seasonal timing: might be the wrong season
Cash Cows (High Revenue, Low Profit):
- Focus on cost reduction or price increases
- Look for bulk material discounts
- Streamline production processes
- If a price or cost change does not lift the margin over a period you set in advance, decide whether to phase it out
Dogs (Low Revenue, Low Profit):
- Retire immediately unless there's a strategic reason to keep
- They're diluting your shop's focus and wasting mental energy
- Use the freed-up time to develop new Stars
- Consider deactivating or archiving rather than deleting, and check Etsy's current help for what each option does
Creating Your Action Plan
Document specific actions for each listing:
Example Action Plan:
LISTING: Custom Pet Portrait Canvas (STAR, margin 40.0%)
Actions:
- Raise the Etsy Ads budget for this listing
- Add size and frame variations
- Ask suppliers for bulk quotes
- Check after 60 days: revenue and margin against the previous 60 days
LISTING: Personalized Wedding Sign (CASH COW, margin -11.8%)
Actions:
- Review the cost per order (111.75): labor is 60.00 of it
- Test a higher price on this listing and compare orders before and after
- Decide in advance what margin you need before you keep it
Step 8: Interpreting Your Results
Understanding what your data really means requires looking beyond surface-level numbers to uncover the story behind your listings' performance.
Context Is Everything
Before making decisions based on your analysis, consider these contextual factors:
- Seasonality: Holiday items naturally perform better in Q4; don't retire them in February
- Listing Age: New listings may need time to gather views and sales before they can be compared fairly
- Market Trends: External factors (social media trends, celebrity endorsements) can cause temporary spikes
- Promotion History: Listings you've actively promoted will naturally show higher performance
- Competition Changes: New competitors or market saturation affects performance over time
Statistical Significance Matters
A listing with 3 sales and 10 views (30% conversion) isn't necessarily better than one with 30 sales and 150 views (20% conversion). The sample size is too small to draw conclusions.
Small counts give unstable rates, and 3 sales on 10 views cannot be compared with 30 sales on 150 views. As working minimums for this tutorial, which are rules of thumb and not tested thresholds:
Working minimums (rules of thumb, not tested thresholds):
- At least 10 orders per listing
- At least 100 views per listing
- At least 30 days of data
- Comparison between periods of equal length
Correlation vs. Causation
Just because two metrics move together doesn't mean one causes the other. For example:
- High views + low sales might indicate SEO mismatch (attracting wrong audience), not poor product quality
- Low revenue in summer for holiday items is expected seasonality, not a performance problem
- A revenue spike after you promoted a listing may be due to the promotion, but timing alone cannot separate it from season or organic growth
Benchmark Against Your Shop, Not Others
Your goal isn't to match industry averages. It's to optimize your shop's performance:
Internal Benchmarking Strategy:
1. Identify your top 20% performers (your personal "best")
2. Compare other listings against this group
3. Set goals to bring mid-performers up to top-tier levels
4. Track improvement over time, not just absolute numbers
If your top listings convert at 5% and another listing converts at 2% with a comparable price and traffic, that gap is worth investigating, once you have checked that both have enough views for the rates to be stable.
Step 9: Common Issues and Solutions
Even with proper setup, you may encounter challenges during listing performance analysis. Here are the most common issues and their solutions.
Issue 1: Insufficient Data
Problem: Most listings have too few orders to compare.
Causes:
- Time period selected is too short (less than 30 days)
- Shop is new with limited sales history
- Filters are too restrictive, excluding most orders
Solutions:
✓ Extend analysis period to 90+ days
✓ Lower your minimum-orders cutoff, and note that the comparison is weaker
✓ Remove category or price range filters
✓ If shop is genuinely new, focus on top 3-5 listings only
✓ Wait until you have at least 50 total orders before deep analysis
Issue 2: Inconsistent Product Names
Problem: The same product appears as multiple separate listings in your analysis.
Causes:
- You renamed the listing during the analysis period
- You have multiple variations listed separately
- Typos or slight wording differences in your data export
Solutions:
✓ Use "Listing ID" instead of "Listing Name" for grouping
✓ Manually consolidate renamed listings in your CSV before upload
✓ Create a "Product Family" column to group variations
Issue 3: Revenue Doesn't Match Etsy Dashboard
Problem: Total revenue in your analysis differs from the Etsy dashboard.
Causes:
- Your export includes or excludes refunds/cancellations differently
- Time zone differences between Etsy export and dashboard
- Dashboard shows gross revenue while export shows net
- Shipping revenue counted separately
Solutions:
✓ Check that your refund handling matches the Etsy view you compare against
✓ Ensure date ranges are identical (including time zones)
✓ Verify whether shipping is included in revenue totals
✓ If a gap remains, find its cause (refunds, time zone, shipping, fees) rather than assuming it is noise
Issue 4: All Listings Show Low Conversion Rates
Problem: Even your best-selling listings show conversion rates below 1%.
Causes:
- Views data is incorrect or inflated
- You're including shop visits (not listing views) in calculation
- Bot traffic or non-genuine views are inflating numbers
Solutions:
✓ Verify you are using views for each listing, not views for the whole shop
✓ Cross-check view counts with Etsy's native analytics
✓ Consider using "Favorites" as an alternative engagement metric
✓ Focus on relative conversion rates between listings, not absolute numbers
Issue 5: Can't Determine Accurate Profit Margins
Problem: You don't have detailed cost data for each listing.
Solutions:
✓ Estimate material costs based on recent supplier invoices
✓ Use average labor time × your hourly rate
✓ Start with rough estimates (±20% accuracy) and refine over time
✓ Track costs for new orders going forward
✓ Focus on relative profitability rankings even with estimates
Perfect data isn't required, directionally correct insights are better than no analysis at all.
Sources
- Etsy Help, How to Download a Spreadsheet of Your Sold Transactions (the order download steps; read 2026-11-02).
- pandas documentation, Group by: split-apply-combine (the per-listing totals).
- pandas documentation, DataFrame.merge (joining views and costs on the listing).
- All shop, order, view and cost numbers on this page are synthetic and were made for this tutorial.
By MCP Analytics Team |
Run It on Your Own Etsy Export
Export your orders from Etsy 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 Etsy account. Views and costs are not in an order export, so add them to your file first if you want conversion and margin.
Next Steps with Etsy Analytics
You now know the basics of listing performance comparison, but this is just the beginning of data-driven Etsy shop management. Here's how to build on these skills:
1. Implement Your Action Plan
Don't let analysis become "analysis paralysis." Within 48 hours of completing your comparison:
- Pick one change for your top and bottom listings and write down the date, so you can compare before and after
- Check whether the bottom listings are low on revenue, on margin or on data
- Set calendar reminders to re-run this analysis monthly
2. Track Changes Over Time
Create a performance tracking spreadsheet:
Month | Top Listing | Revenue | Conversion % | Actions Taken
------|-------------|---------|--------------|---------------
Jan | Pet Portrait| $4,850 | 2.98% | Increased ads
Feb | [Update] | [Track] | [Monitor] | [Document]
3. Expand Your Analysis
Once you are comfortable with listing comparison, explore these advanced topics:
- Customer Segmentation: Which buyer personas prefer which products?
- Seasonal Forecasting: Predict Q4 demand based on historical patterns
- Competitive Analysis: How do your listings stack up against market leaders?
- Attribution Modeling: Which marketing channels drive sales for each listing?
4. Optimize Beyond Listings
Apply similar analytical thinking to other aspects of your Etsy business:
- Pricing strategy testing
- Shipping options and costs
- Product photography effectiveness
- SEO keyword performance
- Customer review sentiment analysis
Continuous Improvement Cycle
Make listing performance analysis a regular habit:
Monthly: Quick review of top/bottom performers
Quarterly: Deep dive with profit margin analysis
Annually: Strategic planning for next year's product mix
Ad-hoc: After major changes (new product launch, price change, etc.)
The most successful Etsy sellers don't rely on intuition. They check their decisions against data. Comparing your listings regularly gives you evidence to work from.
Conclusion
Listing performance comparison transforms you from a reactive shop owner to a proactive business strategist. Instead of wondering why sales are slow or which products to invest in, you now have concrete data showing exactly where to focus your energy and resources.
Remember these key takeaways:
- Revenue alone doesn't tell the full story: always consider conversion rates and profit margins
- Statistical significance matters: avoid drawing conclusions from small sample sizes
- Context is critical: account for seasonality, listing age, and market conditions
- Take action quickly: analysis without implementation is wasted effort
- Review regularly: shop performance changes over time, so should your strategy
By following this tutorial, you've learned not just how to analyze listing performance, but why it matters and what to do with the insights you uncover. This systematic approach to product evaluation will serve you throughout your Etsy selling journey, helping you build a more profitable, sustainable business.
Now it's time to put this knowledge into action. Try the comparison on your own export and see which products deserve your attention.
Explore more: Etsy Shop Analytics: all tools, tutorials, and guides →
Not sure which plan? Compare plans →