Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

The top-N cities by order count and revenue over the period. The card that turns “we ship to all 50 states” into “62% of revenue comes from 5 metropolitan areas”. Geographic concentration drives shipping-rate optimisation, paid-acquisition geo-targeting, and physical-warehouse decisions. City rankings shift week-to-week, especially for stores below ~1,000 orders/month where individual buying patterns dominate. Read this card in 30D+ windows; weekly views are too noisy for most stores.
What it countsCOUNT(orders) GROUP BY billing_address.city plus SUM(total_inc_tax) per city. Top 25 cities by default; toggle to top 50 or top 100 for fuller view.
VAT / tax treatmentTax-inclusive revenue per the BC Total Revenue definition.
ShippingIncluded in revenue; per-city average shipping cost is a useful secondary view.
DiscountsDeducted.
RefundsNot deducted (gross).
Cancelled ordersExcluded.
Incomplete ordersExcluded.
CurrencyMulti-currency without FX; cities aggregate across currency at the order count level, but revenue figures are per-currency.
Channels / sourcesAll channels aggregate. POS orders use the store address (not customer billing) so POS is concentrated to the store’s city; web orders show actual customer geography.
City-name normalisation caveatCustomer-entered city names are messy: “New York”, “NY”, “New York City”, “Manhattan” all refer to the same metro but appear as separate rows. The card applies basic normalisation (case-folding, trimming) but does not resolve aliases. For high-accuracy geo-analysis, use the postcode-level breakdown via Ask Viq rather than this city-level view.
Sample size warningBelow 100 orders in the period, top-cities rankings are dominated by random variation; one B2B customer in Cleveland can put Cleveland in the top 3. Don’t draw strategic conclusions from the top-cities of a low-volume window; aggregate to 90D or 180D for stability.
B2B Edition behaviourB2B orders use billing_address.city of the company’s primary billing address. A B2B customer placing 50 orders/year shows their company city as a top city even though the company’s customers may be distributed widely. Filter to DTC for end-customer geography.
Time window30D (rolling 30 days; settings allow 7D, 30D, 90D, 180D).
Alert triggerNone; this is a discovery card.
Rolesowner, marketing

Calculation

GROUP BY billingAddress.city.keyword
  WHERE date BETWEEN [period_start, period_end]

Worked example

A US apparel brand on BigCommerce, 30-day window 14 Apr 26 to 13 May 26. Total of 5,860 orders, $575,000 revenue.
RankCityOrdersRevenue ($)Avg shipping ($)% of total revenue
1New York, NY482$54,300$11.209.4%
2Los Angeles, CA384$44,100$14.807.7%
3Chicago, IL218$24,800$9.404.3%
4Houston, TX196$22,100$11.603.8%
5Brooklyn, NY168$19,200$11.203.3%
6Miami, FL142$16,400$13.202.9%
7Philadelphia, PA138$15,800$9.802.7%
8San Diego, CA124$14,200$14.402.5%
9Atlanta, GA118$13,500$11.202.3%
10San Francisco, CA112$12,800$15.202.2%
Top 10 total2,082$237,200avg $12.2441.3%
Long tail (~2,800 cities)3,778$337,800avg $9.8058.7%
What’s interesting:
  1. Top 10 cities = 41% of revenue. This is moderate concentration; pure DTC commerce typically sits at 35-50% in top 10. Below 30% means very wide distribution (high shipping costs, lots of long-haul); above 55% means heavy concentration (warehouse co-location decisions become valuable).
  2. New York + Brooklyn = $73,500 (12.7%) of revenue. Brooklyn is split out from NYC in customer entry (different cities to USPS); operationally these are the same metro. Combine them mentally; New York metro is a top-3 priority.
  3. California cities (LA + SD + SF) = 71,100(12.471,100 (12.4%).** West coast concentration; **shipping from an East Coast warehouse to California adds 3-5 days transit and 4-6 to shipping cost versus a CA fulfilment partner. This is the classic “should I add a 3PL on the West Coast?” trigger.
  4. Average shipping cost varies 9.40(Chicago)to9.40 (Chicago) to 15.20 (San Francisco). SF is twice as expensive to ship to versus Chicago at the same order value; this is geography in action. For SF customers, consider a free-ship threshold lift (raise from 50to50 to 75 just for CA addresses); customers don’t notice but margin improves.
  5. Long tail (58.7% of revenue across ~2,800 cities) is the unstructured majority. Each individual city is small but collectively they’re the bulk. Don’t try to optimise the long tail city-by-city; treat it as “general DTC” and focus the city-specific analysis on top 10-25.
Action playbook this card surfaces:
  1. Combine metros mentally. New York + Brooklyn + Queens + Staten Island = NYC metro; LA + Long Beach + Anaheim = LA metro. Don’t optimise sub-cities separately.
  2. Audit shipping rates per top city. A flat-rate shipping policy will overcharge cheap zones (Chicago) and undercharge expensive ones (SF). Switch to zone-based rates if not already.
  3. Geo-target paid acquisition to top-10 cities at premium CPM tiers. Each top city is a known-converting geography; ad spend efficiency is highest there.
  4. Consider a West Coast 3PL if California cumulative revenue exceeds 15-20% of total. Cuts transit time, reduces lost-package rates, lifts repeat purchase rate.
  5. Segment customer-base communications geographically. New Yorkers respond differently to “free shipping” promos than Texans (NY tax-free status on apparel, TX 8.25%); messaging variants by region lift conversion.
  6. Watch for sudden city rises. A new city jumping into the top 10 typically signals viral / influencer activity in that geography; investigate to amplify.

Sibling cards merchants should reference together

CardWhy pair it with Top Cities
BC Customer CountriesCountry-level rollup; pair to see country-distribution before drilling to cities.
BC Orders by StateState / region-level; intermediate granularity between countries and cities.
Total RevenueDenominator.
BC Top CustomersCustomer-level; some top cities are just one or two big customers.
BC Shipping MethodsGeographic distribution drives method optimisation.
BC Shipping %Wide distribution = higher shipping cost percentage.
BC Total TaxTax rate varies by city / state / postcode.
Customer SegmentsPair to see which customer segments cluster in which cities.
Repeat RatePer-city repeat rate identifies high-LTV markets.
BC Customer TrendNew customers in new cities is the geographic-expansion signal.
BC AOV by CountryAOV varies by city / country; affluent cities (SF, NYC) typically have 1.3-1.6x AOV.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce’s own dashboard: BC Insights doesn’t natively expose a top-cities report. The closest equivalent is the Sales Reports → Sales by Customer filtered to the period; the customer table includes city per customer. Pivot in spreadsheet for a city-level rollup. Plus and Enterprise tiers can build a custom Insights query for city-level revenue. For Standard tier, the Orders export with billing_city column is the working data. Why our number may legitimately differ from the vendor’s:
ReasonDirectionWhy
City-name normalisationEither”New York” vs “New York City” vs “NYC” all aggregate to one row in our view (case-folded, whitespace-trimmed); BC may show separately.
Billing vs shipping cityEitherWe use billing_address.city; BC reports may use shipping_address.city. For most orders these match; for gifts they differ.
POS ordersDifferent attributionPOS orders use the store address, not the customer address; our default includes them, distorting the home-store city upward.
Time zoneTrivialUTC vs store time zone.
Sample sizeTrivialBelow 100 orders the rankings are unstable.
Cross-connector reconciliation (when both connectors are connected for this merchant):
CardExpected relationshipNotes
google_analytics.ga_top_citiesTop-N city list should overlap by ~70-80%GA4 attributes by IP-derived city; BC by billing-address city. The two diverge for VPN users, mobile users on cellular roaming, and corporate IPs.

Known limitations / merchant FAQs

My top cities shifted dramatically week to week, why? Sample-size noise. Below 1,000 orders/week, top-cities rankings move on individual large orders. Use 30D or 90D windows for stable rankings. The 7D view is for trend monitoring (is a new city emerging?), not for strategic decisions. Why is my POS city always #1? POS orders use the store’s billing address, not the customer’s. If 30% of your orders are POS at a store in Austin, Austin is your top city by definition. Filter to web channel only (channel_id = 1) for true customer geography. My city list shows duplicates: “New York” and “New York City” and “Manhattan”, how do I fix? The card normalises case and whitespace but doesn’t resolve aliases. For aggregated metro views, use Ask Viq with metro grouping: “show top metros for last 30 days” combines NYC, Brooklyn, Queens, etc. into a single “New York Metro” row. Should I open a warehouse in my top city? Probably not based solely on city; based on regional concentration. If California cities cumulatively are >15% of revenue, a CA 3PL is worth costing out. A single city rarely justifies a warehouse unless it’s >5% of total revenue. Why is Boston not in my top 10 when I sell winter apparel? Possible reasons: (1) seasonal effect (winter apparel peaks in late autumn / early winter; the May window misses it), (2) competitor dominance in Boston (a local rival outranks you organically), (3) shipping cost from your warehouse to MA is high (customers price-shop). Look at 90D windows or year-over-year for stable read. Can I filter to specific countries? Yes via Ask Viq: “top cities in the UK over last 30 days”. Useful for international stores to see regional distribution within country. My ranking shows a city I’ve never heard of in the top 25, what is it? Possibly a fraud signature (test orders from unfamiliar cities at unusual hours), a single big customer, or a viral / influencer moment. Pull the underlying orders for that city; if they’re 5+ orders from different customers, it’s a real signal. Why doesn’t this match Google Analytics’ city report? Different attribution: GA uses IP-derived city; BC uses billing address. VPN, corporate IPs, and mobile users diverge. Trust BC for shipping decisions, GA for advertising decisions. Does this include refunded orders? Yes. Refunded orders count toward their billing city. For net city revenue (excluding refunds), use Ask Viq with refund-exclusion filter. My top city has a high refund rate, what does that mean? Geographic refund clustering can indicate: (1) carrier issues in that geography (UPS regional reliability problems), (2) demographic mismatch (the city’s customer base doesn’t fit the product), (3) fraud cluster (organised return fraud often clusters geographically). Cross-check BC Top Refunded for the same city. Can I see top cities by margin instead of revenue? Yes via Ask Viq: “top cities by gross margin for last 30 days”. Cities with high shipping costs (SF, Anchorage) often have lower margin than revenue rank suggests. Why is the top city not the city with the most population? Population doesn’t directly drive ecommerce spend; income, demographics, and ad-targeting do. NY, LA, Chicago, Houston are typically top-4 by population and revenue, but mid-size affluent cities (Boston, Seattle, Austin) often punch above their population in DTC. My B2B Edition portal makes Cleveland #1, but I’m a NYC retail brand. What’s happening? A B2B customer in Cleveland (large company HQ) places high-value orders that pull Cleveland up by revenue. Filter to DTC for end-customer geography. B2B and DTC have different geographies and shouldn’t be aggregated.

Tracked live in Vortex IQ Nerve Centre

Top Cities by Orders is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.