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.

Shopify Geographic Analysis, Where Your Revenue Actually Comes From

By MCP Analytics Team | Published , updated

You know how much revenue your Shopify store generates. But do you know where it comes from? Which states drive the most orders? Which cities have the highest average order value? Whether your geographic mix is shifting month over month? Upload your Shopify order export and get a complete geographic breakdown (country, state, and city) with trend analysis and AI insights.

Worked Example: Which State Has the Most Sales in a Small Sample?

Question. Which state has the most sales in this sample?

Inputs. The data are made up (simulated, seed 23). Each of 12 rows is one order, with its billing state and order total.

Built in. Each order's state is drawn with chances California 40%, Texas 35%, New York 25%. Order totals are whole dollars drawn evenly from $40 to $200. California has the highest chance by design, so any lead by another state in 12 orders is chance.

Method. The script adds each state's order totals and counts its orders. It also finds average order value (AOV), the mean sale per order.

import numpy as np

# Simulated order-level records. Seed 23 makes the draw repeatable.
seed = 23
rng = np.random.default_rng(seed)
order_ids = np.arange(1, 13)
states = rng.choice(["CA", "TX", "NY"], size=len(order_ids),
                    p=[0.4, 0.35, 0.25])
totals = rng.integers(40, 201, size=len(order_ids))

# Each order is counted once. Group by billing state, then compute revenue and AOV.
revenue_by_state = {}
orders_by_state = {}
for state, total in zip(states, totals):
    revenue_by_state[state] = revenue_by_state.get(state, 0) + int(total)
    orders_by_state[state] = orders_by_state.get(state, 0) + 1

leader = max(revenue_by_state, key=revenue_by_state.get)
print(f"Simulated data, seed {seed}")
print("Built in: order chances CA 40%, TX 35%, NY 25%; totals $40 to $200")
print(f"Orders: {len(order_ids)}")
print(f"Total revenue: ${int(totals.sum())}")
for state in sorted(revenue_by_state):
    n = orders_by_state[state]
    rev = revenue_by_state[state]
    print(f"{state}: {n} orders, ${rev} revenue, ${rev / n:.2f} AOV")
print(f"Top state by revenue: {leader} (${revenue_by_state[leader]})")

Printed output:

Simulated data, seed 23
Built in: order chances CA 40%, TX 35%, NY 25%; totals $40 to $200
Orders: 12
Total revenue: $1077
CA: 5 orders, $477 revenue, $95.40 AOV
NY: 1 orders, $88 revenue, $88.00 AOV
TX: 6 orders, $512 revenue, $85.33 AOV
Top state by revenue: TX ($512)

Result. Texas has the most revenue ($512 from 6 orders), ahead of California ($477 from 5 orders). The $35 gap is chance: California was the most likely state by design, and 12 orders are too few to separate the two. New York's $88 AOV comes from one order and means nothing. The sample total is $1077.

Limit. This is a small made-up sample. It cannot show where real buyers live or guide a store's choices.

Why Geographic Analysis Matters for Shopify Stores

Every Shopify store has a geographic fingerprint. Maybe 40% of your revenue comes from California, or maybe three cities in Texas quietly became your fastest-growing market last quarter. Without looking at the data, you are making marketing and logistics decisions based on gut feel instead of evidence.

Geographic analysis answers the questions that actually drive decisions. Where should you concentrate your ad spend? Which regions justify faster shipping options or local fulfillment? Are you over-investing in markets that are already saturated while ignoring regions with growing demand? If you run regional promotions, did they actually move the needle in the target geography?

The problem is that Shopify's built-in analytics give you a top-level view of orders by country, but nothing deeper. You cannot see revenue by state with average order value comparisons, city-level performance rankings, or month-over-month geographic trends. That is exactly what this analysis provides: a multi-level geographic breakdown that turns your raw order export into an actionable regional strategy.

What Data You Need

You need a standard Shopify order export CSV. Go to your Shopify admin, navigate to Orders, and click Export. Select "All orders" or a date range, and choose CSV format. The export includes everything the analysis needs: order ID (the Name column), order date (Created at), billing location fields (Billing Country, Billing Province, Billing City), and the order total (Total).

A few things to know about Shopify exports. Each order with multiple line items appears as multiple rows in the CSV. A three-item order shows up as three rows. The tool handles this automatically by deduplicating to order level, so a $300 order with three products is correctly counted once at $300, not three times at $900. You do not need to clean or preprocess the file.

For meaningful geographic insights, you want orders spread across multiple regions. A small sample, like the 12 orders in the example above, can shift a lot as more orders come in. A store with 20 orders all from the same city will produce technically correct results but not actionable ones. The more geographic diversity in your data, the more useful the analysis becomes. Three or more months of data enables the trend analysis, which shows how your geographic mix is shifting over time.

When you upload, you will map your columns: order ID, order date, country, province/state, city, total price, and quantity. For a standard Shopify export, the defaults align directly: Name for order ID, Created at for order date, Billing Country, Billing Province, Billing City for location, and Total for revenue.

How the Report Works

The analysis produces report slides, each examining your geographic performance from a different angle. Here is what each one tells you and how to use it.

Overview and Data Preparation

The report opens with a summary of your dataset: total orders, total revenue, date range covered, and how many geographic regions are represented. The preprocessing card shows how the tool handled your data: how many raw rows were in the CSV, how many unique orders were identified after deduplication, and whether any records were excluded due to missing location data. This gives you confidence that the numbers in the rest of the report are based on clean, correctly aggregated data. If you see a large number of excluded rows, it usually means some orders had blank billing addresses: common for draft orders or manually created orders.

Geographic Executive Summary

The TL;DR slide is the one you send to your boss. It distills the entire geographic analysis into key findings: your top market by revenue, your fastest-growing region, your highest-AOV geography, and your geographic concentration level. Concentration matters, if your top three cities account for 75% of revenue, your business is highly dependent on those markets. That is both a strength (you know where your customers are) and a risk (losing one market hits hard). The executive summary also includes AI-generated recommendations tailored to your specific data patterns, like whether your geographic mix suggests expansion opportunities or consolidation strategies.

Revenue by Country

The country-level chart shows revenue and order volume broken down by billing country. For many Shopify stores, especially those based in the United States, this chart will show a single dominant country. That is expected, if 98% of your orders come from the US, the country chart confirms it but does not reveal much new. Its real value is for stores with international sales. If you sell to Canada, the UK, Australia, and the US, this chart shows you the revenue split and whether international markets are growing. For single-country stores, move straight to the state and city slides for the actionable insights.

Top Cities Performance

This is often the most revealing slide. The top cities chart ranks your highest-revenue cities and overlays average order value for each one. The combination tells you two different things. High revenue with average AOV means a city drives volume through order count. It has lots of customers. High revenue with high AOV means customers in that city spend more per transaction, possibly buying premium products or larger quantities.

The reverse is equally useful. A city with high AOV but low total revenue means you have a small number of high-value customers there: a prime target for acquisition campaigns to find more customers like them. A city with many orders but low AOV might benefit from upselling or bundling strategies. The example above shows how to find a result by region.

Geographic Revenue Trends

The trend chart tracks monthly revenue for your top states or provinces over time. This is where you spot shifts in your geographic mix. Maybe California has been your top state for a year, but Texas grew 40% last quarter while California stayed flat. Or maybe a state you ran holiday promotions in spiked in December and dropped back down in January: the promotion drove temporary demand but not retention.

Trends also reveal seasonality by region. A store selling outdoor gear might see Colorado spike in summer and Florida spike in winter. A store selling school supplies will see different states peak based on when school years start. These patterns directly inform when and where to run campaigns, adjust inventory, and allocate marketing budget across regions.

State and Province Analysis

The province analysis card provides a comprehensive comparison of every state or province in your data. It ranks regions by total revenue, order count, and average order value, and crucially, it lets you compare AOV across regions side by side. States where customers spend significantly more per order are worth investigating. Is it because of product mix (they buy more expensive items), cart size (they buy more items per order), or both?

This slide also helps identify underperforming markets. If you run Google Ads targeting Texas but Texas ranks 15th in revenue with below-average AOV, you have a data point that challenges your current ad allocation. Conversely, if a state you have never targeted ranks in the top ten, there is organic demand you could amplify with targeted marketing.

Common Pitfalls

The most common mistake is expecting country-level insights from a single-country store. If 99% of your orders come from the United States, the country bar chart shows one bar. That is correct but not useful: scroll past it to the state and city analysis where the real insights live.

Another pitfall is misreading concentration metrics. High geographic concentration is not inherently bad. A Shopify store selling lobster rolls will naturally concentrate in coastal New England. The question is whether your concentration matches your business model. If you sell nationally but 70% of revenue comes from two cities, you either have an untapped opportunity elsewhere or a very specific customer demographic that clusters geographically.

Watch out for confusing billing address with customer location for B2B orders. If your customers are businesses that bill to a corporate headquarters in Delaware but ship to locations nationwide, the geographic analysis will show Delaware as a top market. For B2B stores, shipping address would be more meaningful, but the standard Shopify export and this analysis use billing address because it is more reliably populated and correct for the vast majority of DTC stores.

When to Use Something Else

If you want to understand what products drive revenue rather than where revenue comes from, use a Shopify order analysis focused on product performance and profitability. If you want to segment customers by purchase behavior: frequency, recency, monetary value: rather than location, RFM segmentation is the right tool. For understanding how your total revenue trends over time without the geographic dimension, a time series analysis provides forecasts and trend decomposition.

Geographic analysis pairs well with these other analyses. Run RFM segmentation to find your best customers, then run geographic analysis to see where they cluster. Or run product profitability analysis to find your highest-margin products, then check which regions buy them most. The geographic lens adds a spatial dimension to insights you already have.

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