Skip to main content

Assess Market Position

Market rank attributes show how individual business locations rank against competitors in their local market. This data reveals competitive positioning and revenue performance relative to similar businesses nearby.


Understanding Market Rankings

Each business location gets ranked within its local cohort: nearby operating locations in the same industry. Rankings compare card revenue over a period (currently the most recent 12 months), so a rank of 5 in a cohort of 17 means four nearby competitors earned more card revenue and twelve earned less.

Some locations have no rank. This happens when Enigma cannot determine card revenue for the location, or when fewer than ten nearby locations in the same industry have card revenue (too few to form a cohort).

Key Rank Attributes

Position
Numerical rank within local cohort
Example: #1, #15, #247
Cohort Size
Total businesses in comparison group
Example: 565 total, 47 total, 1,234 total
Quantity Type
The metric being ranked
Always "card_revenue"
Period
The revenue window used for ranking
Always "12m" (most recent 12 months)
Period Start Date
Date the ranking period begins
Example: 2024-01-15
Period End Date
Date the ranking period ends
Example: 2025-01-15

Accessing Rank Data

Basic Query Pattern

query GetLocationRanks(
$searchInput: SearchInput!
$cardTransactionConditions: ConnectionConditions!
) {
search(searchInput: $searchInput) {
... on OperatingLocation {
id
names(first: 1) {
edges {
node {
name
}
}
}
addresses(first: 1) {
edges {
node {
fullAddress
city
state
}
}
}
ranks(first: 1) {
edges {
node {
position
cohortSize
quantityType
period
periodStartDate
periodEndDate
}
}
}
cardTransactions(first: 1, conditions: $cardTransactionConditions) {
edges {
node {
projectedQuantity
}
}
}
}
}
}

Variables:

{
"searchInput": {
"entityType": "OPERATING_LOCATION",
"name": "Starbucks"
},
"cardTransactionConditions": {
"filter": {
"AND": [
{ "EQ": ["period", "12m"] },
{ "EQ": ["quantityType", "card_revenue_amount"] },
{ "EQ": ["rank", 0] }
]
}
}
}

Sample Response Structure

The search query returns a list of matching entities, so data.search is an array:

{
"data": {
"search": [
{
"id": "2daa02e4-f887-40f5-8bd2-c00764b91e76",
"names": {
"edges": [
{
"node": {
"name": "STARBUCKS"
}
}
]
},
"addresses": {
"edges": [
{
"node": {
"fullAddress": "1912 PIKE PL SEATTLE WA 98101",
"city": "SEATTLE",
"state": "WA"
}
}
]
},
"ranks": {
"edges": [
{
"node": {
"position": 1,
"cohortSize": 565,
"quantityType": "card_revenue",
"period": "12m",
"periodStartDate": "2024-01-15",
"periodEndDate": "2025-01-15"
}
}
]
},
"cardTransactions": {
"edges": [
{
"node": {
"projectedQuantity": 3542891
}
}
]
}
}
]
}
}

Real-World Example: Casa Garcia's

Casa Garcia's operates multiple Mexican restaurant locations across Texas. Their ranking data reveals market position patterns:

Location Performance Analysis

query CasaGarciasAnalysis($searchInput: SearchInput!) {
search(searchInput: $searchInput) {
... on Brand {
names(first: 1) {
edges {
node {
name
}
}
}
totalLocations: count(field: "operatingLocations")
operatingLocations(first: 10) {
edges {
node {
id
names(first: 1) {
edges {
node {
name
}
}
}
addresses(first: 1) {
edges {
node {
fullAddress
city
state
}
}
}
ranks(first: 1) {
edges {
node {
position
cohortSize
period
}
}
}
cardTransactions(
conditions: {
filter: {
AND: [
{ EQ: ["period", "12m"] }
{ EQ: ["quantityType", "card_revenue_amount"] }
{ EQ: ["rank", 0] }
]
}
}
first: 1
) {
edges {
node {
projectedQuantity
}
}
}
}
}
}
}
}
}

Variables:

{
"searchInput": {
"entityType": "BRAND",
"name": "Casa Garcia's",
"address": {
"state": "TX"
}
}
}

Sample Analysis Results

Casa Garcia's Market Position:

  • Austin HQ: #1 of 565 Mexican restaurants ($3.5M revenue)
  • New Braunfels: #15 of 529 Mexican restaurants ($1.1M revenue)
  • San Antonio Northwest: #45 of 1,234 Mexican restaurants ($892K revenue)
  • Round Rock: #8 of 298 Mexican restaurants ($743K revenue)

Key Insights:

  • Market leader in Austin with #1 position
  • Strong performance in smaller markets (Round Rock #8/298)
  • Faces more competition in San Antonio (larger cohort = more competitors)
  • Revenue and rank correlation shows market validation

Ranking Analysis Patterns

Market Percentile Calculation

query CalculateMarketPosition($searchInput: SearchInput!) {
search(searchInput: $searchInput) {
... on Brand {
operatingLocations(first: 50) {
edges {
node {
names(first: 1) {
edges {
node {
name
}
}
}
ranks(first: 1) {
edges {
node {
position
cohortSize
# Calculate percentile: ((cohortSize - position + 1) / cohortSize) * 100
}
}
}
}
}
}
}
}
}

Understanding Percentile Performance

Top 10%
Market Leaders
Austin HQ: #1/565 = 100th percentile
Top 25%
Strong Performers
Round Rock: #8/298 = 97th percentile
Below 75%
Average/Struggling
San Antonio: #45/1234 = 96th percentile

Bulk Location Analysis

query AnalyzeMarketRanks($searchInput: SearchInput!) {
search(searchInput: $searchInput) {
... on OperatingLocation {
id
names(first: 1) {
edges {
node {
name
}
}
}
addresses(first: 1) {
edges {
node {
fullAddress
city
state
}
}
}
ranks(first: 1) {
edges {
node {
position
cohortSize
quantityType
period
}
}
}
cardTransactions(
conditions: {
filter: {
AND: [
{ EQ: ["period", "12m"] }
{ EQ: ["quantityType", "card_revenue_amount"] }
{ EQ: ["rank", 0] }
]
}
}
first: 1
) {
edges {
node {
projectedQuantity
}
}
}
}
}
}

Variables for Casa Garcia's locations in Austin:

{
"searchInput": {
"entityType": "OPERATING_LOCATION",
"name": "Casa Garcia's",
"address": {
"city": "Austin",
"state": "TX"
}
}
}

Advanced Ranking Analysis

Competitive Intelligence

Use ranking data to understand:

Market Density
Large cohort size = saturated market
San Antonio: 1,234 Mexican restaurants (high competition)
Market Opportunity
Small cohort size = niche market
Round Rock: 298 Mexican restaurants (less competition)

Performance Benchmarking

query BenchmarkPerformance($searchInput: SearchInput!) {
search(searchInput: $searchInput) {
... on Brand {
operatingLocations(first: 100) {
edges {
node {
names(first: 1) {
edges {
node {
name
}
}
}
addresses(first: 1) {
edges {
node {
city
state
}
}
}
ranks(first: 1) {
edges {
node {
position
cohortSize
# Calculate market share proxy
}
}
}
cardTransactions(
conditions: {
filter: {
AND: [
{ EQ: ["period", "12m"] }
{ EQ: ["quantityType", "card_revenue_amount"] }
{ EQ: ["rank", 0] }
]
}
}
first: 1
) {
edges {
node {
projectedQuantity
}
}
}
}
}
}
}
}
}

Site Selection Applications

Ranking data helps with location decisions:

  1. High-rank locations in small cohorts = successful formats in underserved markets
  2. Low-rank locations in large cohorts = need repositioning or closure
  3. Market gaps where top-ranked locations have low revenue = expansion opportunities

Key Ranking Insights

What Rankings Reveal

Market Position: Direct competitive comparison within local market
Market Size: Cohort size indicates market saturation and competition level
Performance Validation: Revenue correlation with rank confirms market effectiveness
Expansion Signals: Strong ranks in smaller markets suggest replicable success

Strategic Applications

Investment Research: Identify market leaders and growth opportunities
Competitive Analysis: Benchmark performance against local competitors
Site Selection: Find markets with good rank/revenue ratios
Portfolio Optimization: Focus resources on highest-performing locations


Practical Implementation

Data Processing Pattern

// Example of processing rank data in application
function calculateMarketMetrics(locationData) {
return locationData.map((location) => {
const rank = location.ranks.edges[0]?.node;
const revenue = location.cardTransactions.edges[0]?.node?.projectedQuantity;

if (!rank) return { ...location, marketMetrics: null };

const percentile = ((rank.cohortSize - rank.position + 1) / rank.cohortSize) * 100;
const isMarketLeader = rank.position <= 5;
const marketSize = rank.cohortSize > 500 ? "Large" : rank.cohortSize > 100 ? "Medium" : "Small";

return {
...location,
marketMetrics: {
percentile: Math.round(percentile),
isMarketLeader,
marketSize,
revenuePerRank: revenue ? revenue / rank.position : null,
},
};
});
}

Integration with Location Analysis

Combine ranking data with other location attributes for comprehensive market intelligence. Rankings provide the competitive context that makes revenue and growth data meaningful within local market conditions.