Retail Location Analysis by Drive Time

Jim Amorin, CAE, MAI, SRA, AI-GRS, CDEI
Published: October 27, 2025


Introduction

This guide provides a comprehensive walk through of the Property Location Analysis Tool, an R-based system for evaluating real estate locations using geospatial data, demographics, and amenity analysis. This version uses drive-time isochrones instead of simple radius buffers to more accurately represent realistic trade areas based on actual road networks and travel times. Drive-time isochrones provide several advantages over circular radius buffers:

  1. Realistic trade areas: Isochrones follow actual road networks, accounting for highways, barriers, and traffic patterns
  2. Time-based accessibility: Reflects how far customers can actually travel in a given time period
  3. Irregular boundaries: Captures the natural asymmetry of accessible areas (e.g., faster travel along highways)
  4. Better demographic matching: More accurately identifies census tracts within the true catchment area

Location Adjustments in Retail Property Appraisals

In the valuation of retail properties, location remains one of the most influential determinants of value. Location adjustments account for the qualitative and quantitative differences in the site characteristics that influence a property’s utility, visibility, and access to a viable customer base. These adjustments are particularly critical when analyzing comparable sales in varying retail environments.

Retail success is closely tied to the property’s trade area or that geographic region from which a retail establishment draws the majority of its customers. The size and shape of a trade area are rarely uniform and are influenced by multiple factors including existing and proposed residential developments, natural or manmade barriers (e.g., rivers, highways), and psychological boundaries such as perceptions of safety. Transportation infrastructure and commuter patterns further shape trade area dynamics by affecting ease of access for potential shoppers.

Demographic variables within a trade area such as population density, average household income, age distribution, and consumer spending patterns directly impact retail viability. For instance, household income levels and consumer expenditure habits (e.g., on groceries, apparel, or electronics) can indicate the buying power and preferences of the local market. Retailers often rely on these data points to determine store format, product mix, and even pricing strategies.

Retail property buyers and appraisers must also evaluate the visibility and accessibility of a site. Elements such as traffic volume, street frontage, line-of-sight from major roads, and access to public transportation all contribute to a location’s competitive advantage. A site that is difficult to locate or reach whether due to excessive traffic speeds, poor signage, or other accessibility issues can significantly underperform in comparison to more accessible alternatives.

Ultimately, effective location adjustments require an understanding not only of physical proximity but of the socio-economic context within which a retail property operates. By carefully analyzing trade area boundaries using drive-time isochrones, demographic trends, and site-specific factors, appraisers can make more precise adjustments, thereby producing credible and supportable value conclusions.

Table 1 below outlines some of the key characteristics of various shopping center types, including their typical drive-time trade areas.

Table 1: Type of Shopping Centers
Type Tenantry Size Primary Trade Area
Convenience Center Stores that sell convenience goods (e.g., groceries, pharmaceuticals); not anchored by a supermarket. Less than 30,000 sq ft Less than 5-minute driving time
Neighborhood Shopping Center Stores that sell convenience goods and personal services (e.g., dry cleaning, shoe repair); often anchored by a supermarket. 30,000 – 150,000 sq ft of gross leasable area; 4 – 10 acres Less than 5-minute driving time; 1 – 1½-mile range; 5,000 – 40,000 potential customers
Community Shopping Center Stores that sell convenience goods, personal services, and shoppers' goods (e.g., apparel, appliances); may include a junior department store or off-price/discount store. 100,000 – 300,000 sq ft of gross leasable area; 10 – 30 acres 5 – 20-minute driving time; 3 – 6-mile range; 40,000 – 150,000 potential customers
Regional Shopping Center Stores that sell general merchandise, shoppers' goods, and convenience goods; typically includes one or more department stores. 300,000 – 1,000,000 sq ft of gross leasable area; 30 – 100 acres 20 – 40-minute driving time; 5 – 10-mile range; 150,000 – 400,000 potential customers
Super-Regional Shopping Center Stores that sell general merchandise, apparel, furniture, home furnishings, services, and recreation; contains at least three major department stores. Over 800,000 sq ft of gross leasable area In excess of 30-minute driving time; typically 10 – 35-mile range; over 500,000 potential customers
Source: Stephen F. Fanning, Market Analysis for Real Estate, 2nd ed. (Chicago: Appraisal Institute, 2014)

What This Tool Does

The Property Location Analysis Tool helps you determine a ranking of the location of comparables on a qualitative basis using a scoring of key elements:

  • Provides an Input Section to set parameters for the property type, weightings, etc.
  • Score locations based on multiple factors (income, population, amenities, property values, and traffic counts)
  • Compare properties side-by-side to identify the best opportunities
  • Visualize results with interactive maps, charts, and tables
  • Generate reports in multiple formats (Excel, HTML, PNG)
  • Caches data to avoid repeated API calls and speed up analysis

Key Features

NoteCore Capabilities
  • Geocoding addresses to coordinates (if necessary)
  • Fetching US Census demographic data by location
  • Querying OpenStreetMap for nearby amenities
  • Calculating weighted location scores
  • Creating interactive visualizations

Understanding the Code Structure

Architecture Overview

The tool is organized into several functional modules as shown in the following graphic. :

graph TD

A[Input: Property Details] --> B{Lat/Lon Available?}
B -- Yes --> C[Use Existing Coordinates]
B -- No --> D[Geocode Addresses]
C --> E[Data Collection]
D --> E
E --> F[Census Demographics]
E --> G[OSM Amenities]
F --> H[Scoring Engine]
G --> H
H --> I[Analysis Results]
I --> J[Visualizations]
I --> K[Reports]
J --> L[Maps, Charts, Tables]
K --> M[Excel, HTML]

Usage Instructions

Basic Usage

  1. Prepare an Excel file with subject and sales’ locations including these columns as a minimum:
    • Sale: Identifies the sale number or Subject Property
    • Address: Street address of the property
    • City: City property lies in
    • State: State location as two-letter abbreviation
    • Zip Code: Zip Code for property location
    • Price/SF: Price per square foot of property
    • Traffic Count: For now you need to enter this figure from any available source
    • Optional: lat or latitude column. If you have it enter it to avoid geocoding issues
    • Optional: lon or longitude column. If you have it enter it to avoid geocoding issues
    • Optional: other identifying columns
  2. Set parameters at the top of this Quarto document:
    • data_file: Path to your Excel file
    • shopping_center_type: Type of retail center
    • weights: Set Custom Weights
  3. Render the document to generate analysis

Setup and Configuration

Mapbox API

To use drive-time isochrones, you need a Mapbox API key:

  1. Create a free account at mapbox.com
  2. Generate an access token (refereed to in the code as MAPBOX_API_KEY)

Census API Setup

Data Preparation

Load Property Data

Table 2: Subject and Comparable Sales (Geocoded — Missing Coordinates Shown)
sale address city state lat lon
1 9900 S Interstate 35 Austin TX 30.15847 -97.79240
2 115 Sundance Pky Round Rock TX 30.48319 -97.67749
3 4211 S Lamar Blvd Austin TX 30.23408 -97.79242
4 7112 Ed Bluestein Blvd Austin TX 30.31328 -97.66364
5 4301 W William Cannon Dr Austin TX 30.22152 -97.84117
6 107 Ranch Road 620 S Austin TX 30.36520 -97.95060
Subject 10900 Lakeline Mall Drive Austin TX 30.47656 -97.79588
7 5900 Escarpment Blvd Austin TX 30.20156 -97.87895

Drive Times Based on Shopping Center Type

This section determines drive time isochrones based on the the type of property under analysis. In this case, the property was defined as a Neighborhood Shopping Center which typically has a primary trade area of about 5 minutes which will be used in this analysis. A review of Figure 1 displays these boundaries for each sale and the subject property.

Mapped Properties with Isochrones

Figure 1: Drive-Time Isochrones for Each Property

Linking Isochrones and Census Data

The first major step in the analysis is to generate drive-time isochrones for each property. An isochrone defines the geographic area that can be reached within a specified travel time using the actual road network. This differs from a simple circular radius, which assumes straight-line distance and ignores highways, barriers, and travel speeds. By using drive-time boundaries, the analysis reflects a much more realistic picture of how far customers can travel to reach a property.

Once the isochrones are created, the next challenge is to associate those irregularly shaped areas with U.S. Census data. The Census Bureau provides demographic and economic data by fixed geographic units such as tracts, block groups, and blocks, but it does not allow direct data retrieval based on drive-time areas. In other words, while the Census API can return data within a given radius or within specific Census boundaries, it cannot natively return data for an isochrone polygon that follows real roads.

To bridge that gap, this tool takes a two-step approach. First, it downloads the full set of Census tracts for the state that contains the subject and comparable properties. Then, it uses a spatial intersection to determine which tracts fall wholly or partially within each drive-time isochrone. Because tract boundaries rarely align perfectly with isochrone shapes, the code calculates the proportion of each tract’s area that lies inside the isochrone and uses that percentage to weight demographic variables such as population and household income. This allows the results to reflect the demographic characteristics of the true trade area—based not on arbitrary circles but on how people actually travel.

In effect, the isochrone serves as a geographic “filter” that converts Census data from its static tract format into a dynamic representation of real-world accessibility. This integration of road-network travel times with demographic weighting provides a far more accurate foundation for evaluating retail trade areas and comparing locations on a consistent basis.

Demographics Retrieval Function

A query to the US Census Bureau is necessary to fetch appropriate demographics for this analysis. As outlined, the key demographic variables used in this analysis include those shown in Table 3.

Table 3: Census Variables Used in Analysis
Variable Description Census Code
Population Total population in census tract B01003_001
Median Income Median household income B19013_001
Median Home Value Median value of owner-occupied homes B25077_001
Median Gross Rent Median gross rent B25046_001
✅ Census data saved to Census_Data_TX_2023.xlsx 

Spatial Join: Census Tracts Within Isochrones

This step identifies and summarizes demographic information within each property’s drive-time area (called an isochrone). Because Census data is published in tract boundaries rather than by drive-time zones, the analysis first determines which Census tracts fall inside each isochrone.

For each property, the code performs the following tasks:

  1. Identify the Isochrone Area The process begins by selecting the isochrone that corresponds to a specific property sale. Each isochrone represents the geographic area reachable by car within a set number of minutes from that location.

  2. Find Census Tracts that Intersect the Isochrone The program then looks for all Census tracts that overlap with the property’s isochrone boundary. Since these tracts rarely align perfectly with the drive-time area, only the overlapping portions are considered.

  3. Weight Each Tract by Overlap Area To ensure accuracy, the code calculates how much of each Census tract lies within the isochrone. It then weights the demographic data (population and income) based on the percentage of each tract included. For example, if only half of a tract falls inside the drive-time area, only half of that tract’s population and income values are counted.

  4. Aggregate the Weighted Results After weighting, the script adds up the adjusted population estimates and computes an average household income for the entire isochrone area. This produces a fair representation of the demographic characteristics actually within the drive-time zone rather than the full Census tracts.

  5. Summarize by Property Finally, the code compiles the results for each property, reporting the estimated total population, average income, and number of tracts that contributed data.

This analysis blends drive-time accessibility data with Census demographics. It provides localized, data-driven insight into the population and income patterns surrounding each property based on realistic travel areas rather than simple circular buffers.

Table 4: Demographic Summary within Drive-Time Isochrones
Sale Total Population Median Household Income Median Home Value Median Gross Rent Census Tracts Included
1 5107 $100,793 $393,984 $5,421 7
2 9577 $83,154 $319,403 $2,788 12
3 11846 $85,918 $584,826 $2,300 18
4 11506 $96,722 $456,468 $2,744 12
5 8569 $107,533 $488,278 $4,148 12
6 3075 $135,870 $601,883 $4,961 3
Subject 13372 $88,746 $450,457 $4,575 13
7 9938 $154,804 $623,564 $4,054 8

Calculate Population Density

Not really sure this is necessary or desirable. The population Density Score should notbe using this…address when I get there.

Table 5: Population Density within Drive-Time Isochrones (per Square Mile)
Sale Total Population Trade Area (sq mi) Population Density (per sq mi)
3 11846 2.43 4874.1
Subject 13372 3.50 3824.0
2 9577 2.64 3630.0
5 8569 2.53 3390.4
4 11506 3.51 3282.1
1 5107 1.61 3170.5
7 9938 3.61 2754.3
6 3075 3.32 925.3

Figure 2 visually reveals which trade areas contain the most concentrated residential populations. Areas shaded in darker tones correspond to higher population densities, indicating locations where retailers can expect stronger customer activity and greater potential sales volume within the same travel time. Lighter areas reflect lower residential concentration, signaling more dispersed customer bases or less intensive retail demand.

Figure 2: Population Density by Drive-Time Isochrone

Figure 3 highlights the relative concentration of residents within each property’s trade area. Higher bars correspond to locations with denser surrounding populations—an indicator of greater potential customer volume.”

Figure 3: Relative Population Density by Property

Amenity Analysis Using Isochrones

Queries OpenStreetMap (https://wiki.openstreetmap.org/wiki/Key:amenity) for nearby amenities within specified 5 minute drive time for Neighborhood Shopping Centers. OSM’s amenity key is extremely broad. It includes everything from airports to post boxes.

In the context of retail demand and site selection, the relevant amenities are those that:

  1. Attract regular consumer visits (e.g., restaurants, cafes, banks, pharmacies).

  2. Represent daily or weekly necessities (e.g., supermarkets, convenience stores, schools).

  3. Encourage dwell time or foot traffic clustering (e.g., parks, places of worship, leisure).

  4. Support workforce presence (e.g., offices, post offices, government buildings).

These amenities serve as proxies for consumer presence, disposable income circulation, and accessibility to routine goods and services. For a retail valuation context, they also mirror the “market support” and “trade area vitality” concepts used in market analysis texts like Fanning, Market Analysis for Real Estate, 2nd ed.

The general amenity categories that are used in this analysis include the following:

  • Supermarkets - As a proxy for measuring the presence of food retail and daily household shopping activity.
  • Restaurants - Correlates to consumer engagement, social clustering and evening/weekend traffic.
  • Cafes - Also correlates to consumer engagement, social clustering and evening/weekend traffic.
  • Banks - Usually daytime traffic and draw to other nearby retail establishments.
  • Hospitals - Represents essential service and consistent daytime population.
  • Pharmacies - Regular essential service that often reflects high traffic.
  • School/College/University - Brings regular population flows including students, parents, and staff.
  • Parks - Encourages recreational foot traffic and neighborhood appeal.
Table 6: Amenity Counts by Property
Amenity Counts by Property
sale bank cafe college hospital park pharmacy restaurant school supermarket university Total
1 51 2 0 0 0 1 49 17 0 0 120
2 57 1 0 18 0 2 168 2 0 1 249
3 1 12 1 8 0 4 192 21 0 0 239
4 21 1 0 0 0 1 46 114 0 0 183
5 112 1 0 0 0 7 62 21 0 0 203
6 77 1 0 6 0 0 58 13 0 0 155
Subject 54 4 0 14 0 2 97 22 0 0 193
7 53 2 0 1 0 17 6 56 0 26 161

Traffic Count Integration

Traffic counts represent one of the most direct and quantifiable indicators of retail exposure. They measure the average number of vehicles or pedestrians passing a site over a given period, typically expressed as average daily traffic (ADT). For retailers, these counts serve as a proxy for visibility, accessibility, and potential customer flow.

High-traffic corridors generally translate to stronger impulse purchases, higher brand exposure, and greater potential for repeat visits. Conversely, properties with limited frontage on low-volume roads often face reduced visibility and a smaller trade area, even when nearby demographics appear favorable. Appraisers and market analysts use traffic data to evaluate a site’s competitive positioning, comparing comparable sales or lease rates within similar retail corridors to assess whether a location’s exposure justifies a premium or discount in value.

In short, traffic counts help quantify how often potential customers encounter a property in their daily travel patterns—bridging the gap between demographic potential and actual retail opportunity.

Note

Note: Traffic counts presently need to be added to the base Excel file as extraction of these variables is not presently a functionality.

NoteTraffic Count Data Sources

Traffic count data measure the average number of vehicles passing specific roadway points, often expressed as Annual Average Daily Traffic (AADT). While this report uses data from the Texas Department of Transportation (TxDOT) Open Data Portal, similar information is available from most U.S. states and many other countries.

United States

Canada

  • Provincial Ministries of Transportation:
    Each province maintains similar datasets:
  • Municipal and Regional Sources:
    Large municipalities (e.g., Toronto, Vancouver, Calgary) often publish local traffic counts through their open data portals.

International

Future Implementation Notes

To integrate local traffic data into this analysis: 1. Download the shapefile or GeoJSON version of your region’s AADT or traffic count dataset.
2. Load it into R using sf::st_read("path/to/file.shp").
3. Perform a spatial join between your property points and the nearest road segment (sf::st_join() or st_nearest_feature()).
4. Extract or average the relevant traffic count field for scoring.

Table 7: Traffic Counts by Property
Sale Traffic Count
1 15,583
2 19,290
3 22,327
4 7,356
5 21,515
6 45,149
Subject 30,161
7 18,522
Average / Max 22,488 / 45,149

Weighting Function/Inputs

Required inputs to apply appropriate weight to the income (consumer spending power), the population density (a reflection of foot traffic potential), amenities (neighborhood quality and drawing power), property values (a function of costs to live in area), and traffic counts (a measure of visibility, accessibility and potential customers beyond population in trade area).

Table 8: Model Weighting Parameters
Variable Weight (%)
Income 30%
Population Density 30%
Amenities 10%
Property Value 10%
Traffic Count 20%

Scoring Function

Calculates a comprehensive location score (0-100) based on five factors:

  • Formula: rescale(median_income, to = c(0, 100), from = range(all_incomes))
  • Higher income = better location (greater purchasing power)
  • Dyanmically normalized to 0-100 scale

Interpretation: The Income Score measures the relative purchasing power of households within each trade area. Median household income remains a reliable proxy for local spending capacity and the ability of residents to support a broad range of retail goods and services. Higher median incomes typically correspond with greater discretionary spending, stronger support for mid- and upper-tier retailers, and enhanced resilience during economic downturns.

This uses adaptive scaling to account for any range of income levels. The score is calculated by rescaling each trade area’s median income within the range of all incomes observed across the study sample. This approach preserves meaningful differences among higher-income areas, where a capped formula would otherwise treat them as identical, and allows for balanced comparison between affluent and moderate-income markets.

Notes on the Scale: The scaling is anchored to the lowest and highest median incomes within the comparison group. The location with the highest income receives a score of 100, while lowest income area scores a 0. Other income levels are scored proportionally.

  • Formula: rescale(population, to = c(0, 100), from = range(all_populations))
  • Higher population = more potential customers/activity
  • Normalized to 0-100 scale

Interpretation: The Population Density Score represents the concentration of potential customers within the trade area. Retail activity depends not only on affluence but also on proximity and repetition of visits. Areas with greater population density tend to generate stronger pass-by traffic, higher visibility, and more consistent sales volumes.

This metric applies adaptive scaling rather than a fixed divisor. Each trade area’s population is rescaled within the observed range of populations across the study sample. This ensures that every location receives a proportionate score, maintaining meaningful separation even among densely populated areas where a capped formula might otherwise flatten results.

Notes on the Scale: The lowest population in the comparison group anchors the bottom of the scale at 0, while the highest defines 100. All other sites are positioned proportionally between them.

  • Formula: 0.4 × (Diversity %) + 0.6 × (Density %, adaptively scaled 0–100)
  • More diverse and concentrated amenities = stronger location
  • Balances variety and overall intensity of surrounding uses

Interpretation: The Amenities Score reflects both the diversity and density of nearby amenities that contribute to a site’s retail vitality. Diversity measures the proportion of tracked amenity categories—such as restaurants, schools, parks, banks, and pharmacies—that are represented within the trade area. Density measures the total number of amenities, scaled relative to the range observed across all study locations.

Together, these components create a balanced indicator of neighborhood convenience, consumer draw, and the underlying strength of the retail ecosystem. Locations that contain all tracked amenity types receive full credit for diversity, while those with fewer categories present earn proportionally less. The density component differentiates sites based on how intensively built and commercially active they are within the same amenity mix.

Notes on the Scale: The diversity index reaches 100 when all tracked amenity categories are represented within the trade area. The density index is adaptively normalized between the lowest and highest total amenity counts observed among all properties being compared, ensuring that each site’s score reflects its position within the actual range of market activity. The final score combines both effects, assigning 40% weight to diversity and 60% to density. This method ensures fair comparison across urban, suburban, and rural contexts without relying on arbitrary saturation thresholds.

  • Formula: 0.50 x min(median_home_value / 6500, 100) + 0.5 x min(median_gross_rent / 50, 100)
  • Higher values = more desirable neighborhood
  • Normalized to 0-100 scale

Interpretation: The Property Value Score represents a composite measure of market vitality that combines indicators of long-term stability and short-term spending capacity within a trade area. Median home value reflects neighborhood affluence, ownership stability, and the general desirability of the surrounding residential market. Median gross rent complements this by capturing the relative cost of occupancy and the local balance between household income and housing expense—an important proxy for retail purchasing power and economic elasticity.

By weighting home value and rent equally (50/50), the score avoids bias toward either high-income owner-occupied areas or transient high-rent districts. A higher Property Value Score therefore signals a trade area that is both financially resilient and economically active, typically corresponding to locations that can support sustainable retail rents and consistent consumer demand.

High home value and high rent → strong, affluent market with high retail viability.
High rent but low home value → possibly transient or overburdened market.
High home value but low rent → stable ownership but low circulation spending.

Notes on the Scale The divisor for home value (/6500) is a normalization factor that caps high-value markets near 100. You can tune it—if your markets are typically high-end, you might raise that to /7000 or /8000. The divisor for gross rent (/50) is similar: $50 × 100 = $5,000, roughly the upper bound for typical monthly rent, producing comparable scaling.

  • Formula: rescale(traffic_count, to = c(0, 100), from = range(all_traffic_counts))
  • Higher traffic = greater retail visibility and consumer flow
  • Dynamically normalized to 0–100 scale

Interpretation: The Traffic Count Score measures the retail exposure and accessibility of a location based on roadway volume. Higher traffic counts typically translate to greater visibility, impulse visits, and daily customer flow.

This score is dynamically scaled relative to the comparison group, ensuring that properties with exceptionally high or low counts remain distinguishable within each analysis set.

Notes on the Scale: The lowest observed traffic count anchors the scale at 0, and the highest at 100. When comparing sites across multiple markets, a shared range can be applied to maintain consistent interpretation across studies.

Total Score Calculation \[ \text{Total Score} = \sum_{i=1}^{5} (\text{Component Score}_i \times \text{Weight}_i) \]

Interpretation: The Total Score represents the weighted sum of five core indicators—Income, Population, Amenities, Property Value, and Traffic Count—each scaled from 0 to 100. Weights (𝑤ᵢ) control the relative importance of each factor and are defined in the document parameters. This additive framework allows the model to reflect both market potential (income, population), site quality (amenities, property value), and exposure/accessibility (traffic count).

Notes on the Scale: Each component score is dynamically normalized within its observed range to preserve proportional differences among locations. The composite score therefore expresses each site’s overall retail viability relative to all others in the analysis.

Calculate Weighted Score for Location Analysis

Combine all metrics to generate location scores.

Table 9: Ranked Retail Locations
Rank Sale Total Score Income Score Population Score Amenities Score Property Value Score Traffic Score
1 7 69.5 100.0 66.7 47.1 88.5 29.5
2 Subject 58.2 7.8 100.0 58.0 80.4 60.3
3 6 55.3 73.6 0.0 36.3 95.9 100.0
4 3 49.8 3.9 85.2 83.3 68.0 39.6
5 5 47.5 34.0 53.4 58.6 79.0 37.5
6 4 41.4 18.9 81.9 49.3 62.6 0.0
7 2 39.3 0.0 63.1 88.0 52.5 31.6
8 1 27.7 24.6 19.7 20.0 80.3 21.8

Visualization: Scored Properties with Isochrones

Figure 4: Property Locations Colored by Score with Drive-Time Isochrones

Sensivity Analysis

The sensitivity analysis tests how stable each property’s ranking remains when the weighting of input factors such as income, population density, amenities, property values, and traffic counts is allowed to vary randomly within reasonable limits. This scenario analysis runs 5,000 times with alternative weighting configuration being simulated. Each configuration produces a new set of location rankings. The resulting distribution of simulated ranks for each property reflects how dependent its position is on the specific weighting assumptions used in the model.

The median simulated rank represents the property’s typical performance across all simulations, while the 5th and 95th percentiles mark its best-case and worst-case outcomes, respectively. A property with a low median rank and a narrow percentile range demonstrates consistent strength and resilience to changing assumptions. In contrast, a wide percentile range indicates that the property’s relative standing shifts considerably under different weighting scenarios, suggesting greater sensitivity to how the model prioritizes its components. Together, these measures reveal not only which locations perform best on average but also which are most robust to uncertainty in the underlying valuation logic.

NoteAbout the Sensitivity Simulation

The “reasonable limits” for weighting variation are defined by a distribution, which produces random, positive weights that sum to one. This distribution allows each factor including Income, Population, Amenities, Property Value, and Traffic to fluctuate broadly between near-zero and moderate dominance, representing plausible shifts in judgment without introducing unrealistic extremes.Each factor can vary between very small (near 0) and fairly large (up to ~0.7–0.8), but the average weight remains around 0.20 (1/5). The Gamma(1,1) shape parameter ensures broad variability without producing absurd or hyper-concentrated weights (like one factor getting 99% of total influence).

Each Monte Carlo run represents one hypothetical weighting configuration within those bounds. Monte Carlo error decreases approximately in proportion to the inverse of the square root of the number of simulations:

\[ \text{Error} \propto \frac{1}{\sqrt{N}} \]

This means that as the number of scenarios (N) increases, the uncertainty in the simulated results shrinks rapidly at first and then levels off:

  • 100 runs → approximately 10 % uncertainty
  • 1,000 runs → approximately 3 % uncertainty
  • 5,000 runs → approximately 1.4 % uncertainty

In practice, 5,000 simulations represent a balanced choice—large enough to yield stable percentile and rank estimates, yet small enough to run efficiently on a standard laptop without noticeable slowdown.

Monte Carlo Variation of Simulated Ranks

Figure 5 summarizes the range of simulated outcomes for each property across all Monte Carlo trials. Each dot represents the property’s median simulated rank, while the horizontal line shows the spread between the 5th and 95th percentile of its rank outcomes. A smaller range means that the property’s position was relatively stable even as the factor weights varied, suggesting its performance is robust under different weighting scenarios. A longer range, on the other hand, indicates that the property’s relative standing fluctuated more widely depending on which factors carried greater influence in a given simulation.

From an appraisal or site-selection standpoint, this visualization conveys the stability of relative rankings under uncertainty. Properties with consistently low (leftward) and narrow intervals can be viewed as strong performers across a broad range of assumptions, implying dependable comparative strength. Conversely, properties with wider or right-shifted intervals are more sensitive to model assumptions, meaning their perceived attractiveness or competitiveness is highly dependent on the specific combination of factor weights.

Taken together, this chart provides a concise summary of ranking volatility, helping analysts gauge not just which sites tend to score best, but how confidently those conclusions hold across multiple possible weighting scenarios.

(a) Dot = Median Simulated Rank, Line = 5th–95th Percentile
Figure 5: Sensitivity Analysis: Ranking Stability Under Weight Variation

Simulated Ranking Stability Summary

Table 10 presents the statistical summary of simulated rankings for each sale across all Monte Carlo iterations. The Median Rank column represents the property’s typical position under random variations in factor weights, while the 5th and 95th Percentiles indicate the lower and upper bounds of its likely ranking range. Together, these values convey both the central tendency and the volatility of each property’s simulated performance.

A smaller gap between the 5th and 95th percentiles suggests that the property’s ranking remained relatively stable regardless of how the weights were varied, indicating a higher degree of confidence in its position. Conversely, a wider range implies that the property’s relative standing was more sensitive to the specific weighting assumptions.

In practical terms, this table quantifies the same insights illustrated in the preceding Monte Carlo variation chart. Properties with low median ranks and narrow percentile ranges appear more consistently competitive across numerous simulation scenarios, while those with broader ranges or higher median ranks demonstrate greater uncertainty in their comparative standing. This information helps analysts and appraisers assess both expected performance and model sensitivity, improving the robustness of ranking-based conclusions.

Table 10: Simulated Ranking Stability Summary
Sale Median Rank 5th Percentile 95th Percentile
6 2 1 7
7 2 1 5
Subject 2 1 5
3 3 1 6
5 5 3 6
2 6 3 8
4 7 4 8
1 8 5 8

Histogram of Simulated Ranks

Figure 6 displays the frequency distribution of simulated rankings for each property across all Monte Carlo runs. Each panel corresponds to one sale, and the horizontal axis represents its possible rank outcomes. A tightly clustered distribution suggests that the property’s rank remained consistent despite varying factor weights, indicating a relatively stable competitive position. A broader or multi-peaked distribution reveals greater sensitivity—meaning the property’s relative standing can change noticeably depending on how much weight is assigned to each factor.

From an analytical perspective, this helps identify which properties are most robust to methodological assumptions and which are more dependent on specific weight configurations. In site-selection or appraisal applications, consistent rankings indicate locations that perform well across a wide range of weighting scenarios, while highly variable rankings point to those whose appeal hinges on particular market drivers.

Figure 6: Histogram of Simulated Ranks by Sale

Tornado Diagram of Weight Sensitivity

Figure 7 presents the distribution of simulated weights assigned to each evaluation factor across all Monte Carlo iterations. Each horizontal boxplot summarizes the spread and central tendency of one factor’s weight. The median line within each box represents the typical relative importance of that factor, while the width of the box reflects how much its weight varied from one simulation to another.

A higher median implies that, on average, the factor contributed more to the overall scores, whereas a lower median suggests it played a smaller role. A narrower spread indicates that its influence was stable across scenarios, while a wider spread denotes greater uncertainty or volatility in its importance. Together, these elements convey how sensitive the overall ranking results are to shifts in the assumed weighting of each variable.

In general, the tornado diagram complements the rank histograms by revealing why certain properties appear more stable or variable—helping analysts trace rank uncertainty back to underlying factors.

Figure 7: Tornado Diagram — Impact of Weight Variation on Total Score

Radar Chart

The radar chart in Figure 8 illustrates how the top five locations compare across the primary scoring components of the Retail Location Analysis: income, population, amenities, property value, and traffic. Each polygon represents one property’s relative performance, with the outer edge of the chart indicating higher normalized scores. The chart provides a multidimensional view of how well each site performs across the full range of evaluation criteria rather than focusing on a single factor.

From an analytical perspective, a property with a larger and more evenly shaped polygon demonstrates balanced strength across multiple dimensions, while a property whose polygon extends sharply in only one or two directions indicates concentrated advantages but potential weaknesses elsewhere. For example, a site that scores highly on income and traffic but low on amenities or property value may perform well under certain weighting scenarios but less so when broader community attributes are emphasized.

In practice, this visualization helps appraisers and analysts understand why certain sites achieved higher overall scores or ranking stability in the Monte Carlo results. It reveals the underlying trade-offs between economic strength, consumer accessibility, and neighborhood characteristics, allowing decision-makers to assess not just which locations rank best, but how their component profiles differ and where improvement or additional investigation may be warranted.

Figure 8: Component Comparison Radar Chart

Ranked Location map

The map in Figure 9 provides a spatial summary of the ranked retail locations. Each point represents either the subject property or one of the comparable sales analyzed in the model. The subject property is displayed in red for emphasis, while the comparable sales appear as blue points labeled with their respective ranking positions. This visual layout allows the reader to see not only how each property performed in the scoring analysis but also where those results occur geographically across the market area. Proximity patterns, clustering, or spatial dispersion of higher- or lower-ranked sites can reveal localized strengths and weaknesses that might not be evident from tabular results alone.

Figure 9: Ranked Location Map

Amenity Density Map

The Amenity Density Map in Figure Figure 10 expands on the earlier tabular summary by showing the actual spatial distribution of each amenity type within the drive-time boundaries. Each color represents a distinct amenity category, allowing the reader to visualize not only the total number of amenities but also their composition and clustering patterns around each property. Concentrations of similarly colored dots often indicate commercial corridors or service hubs, while mixed clusters suggest diverse neighborhood environments supporting broader retail demand. This map thus provides an intuitive, spatial counterpart to the amenity count analysis, illustrating both density and diversity across trade areas.

Figure 10: Amenity Density Map

Conclusions

Comparative analysis is defined as “the process by which a value indication is derived in the sales comparison approach. Comparative analysis may employ quantitative or qualitative techniques, either separately or in combination.”1 The Appraisal of Real Estate outlines examples of the techniques used in quantitative adjustments and qualitative analyses as shown in Table 11.2

Table 11: Techniques Used in Quantitative and Qualitative Analysis
Quantitative Analysis Qualitative Analysis
Paired data analysis (sales and resales of the same or similar properties) Relative comparison analysis
Grouped data analysis Ranking analysis
Secondary data analysis Personal interviews
Statistical analysis including graphic analysis and scenario analysis
Cost-related adjustments (cost to cure, depreciated cost)
Capitalization of income differences
Trend analysis

When adequate data is available, quantitative analysis can be a helpful tool, but often the differences between properties makes it challenging to determine appropriate adjustments with a level of certainty. In these cases qualitative analysis or ranking can be helpful.”3 Qualitative analysis recognizes the inefficiencies of real estate markets and the difficulty of expressing adjustments with mathematical precision.”

Executive Summary Table

Table 12 consolidates the results of the Retail Location Analysis into a concise summary of comparative performance. Each property (including the subject) is ranked according to its Total Score, which integrates multiple weighted factors such as income, population, amenities, property value, and traffic conditions within the specified drive-time boundary.

The Rank column reflects the overall ordering from best to least favorable under the baseline weighting scenario, while the Total Score expresses each location’s composite index value on a standardized scale. Drive Time denotes the consistent spatial boundary used for comparison, and Price per Square Foot provides a market context for relative value.

Taken together, this table provides a high-level snapshot of how each location performs under the modeled conditions, allowing for quick identification of competitive strengths and potential trade-offs between market positioning and pricing.

Table 12: Executive Summary — Retail Location Comparison (Drive-Time Isochrones)
Rank Sale Total Score Drive Time Price/SF
1 7 69.5 5 min $466
2 Subject 58.2 5 min
3 6 55.3 5 min $451
4 3 49.8 5 min $392
5 5 47.5 5 min $208
6 4 41.4 5 min $240
7 2 39.3 5 min $191
8 1 27.7 5 min $151

Session Information

R version 4.5.0 (2025-04-11 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26200)

Matrix products: default
  LAPACK version 3.12.1

locale:
[1] LC_COLLATE=English_United States.utf8 
[2] LC_CTYPE=English_United States.utf8   
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.utf8    

time zone: America/Chicago
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] kableExtra_1.4.0     knitr_1.50           mapboxapi_0.6.2     
 [4] leaflet.extras_2.0.1 leaflet_2.2.3        osmdata_0.3.0       
 [7] plotly_4.11.0        httr_1.4.7           scales_1.4.0        
[10] writexl_1.5.4        readxl_1.4.5         janitor_2.2.1       
[13] tidycensus_1.7.3     sf_1.0-21            lubridate_1.9.4     
[16] forcats_1.0.1        stringr_1.5.2        dplyr_1.1.4         
[19] purrr_1.1.0          readr_2.1.5          tidyr_1.3.1         
[22] tibble_3.3.0         ggplot2_4.0.0        tidyverse_2.0.0     

loaded via a namespace (and not attached):
 [1] DBI_1.2.3               s2_1.1.9                rlang_1.1.6            
 [4] magrittr_2.0.4          snakecase_0.11.1        e1071_1.7-16           
 [7] compiler_4.5.0          png_0.1-8               systemfonts_1.3.1      
[10] vctrs_0.6.5             rvest_1.0.5             wk_0.9.4               
[13] pkgconfig_2.0.3         crayon_1.5.3            fastmap_1.2.0          
[16] magick_2.9.0            labeling_0.4.3          geojsonsf_2.0.3        
[19] promises_1.3.3          rmarkdown_2.30          tzdb_0.5.0             
[22] ps_1.9.1                xfun_0.53               aws.s3_0.3.22          
[25] jsonlite_2.0.0          later_1.4.4             uuid_1.2-1             
[28] jpeg_0.1-11             terra_1.8-70            R6_2.6.1               
[31] stringi_1.8.7           RColorBrewer_1.1-3      jquerylib_0.1.4        
[34] cellranger_1.1.0        Rcpp_1.1.0              base64enc_0.1-3        
[37] leaflet.providers_2.0.0 timechange_0.3.0        tidyselect_1.2.1       
[40] rstudioapi_0.17.1       yaml_2.3.10             codetools_0.2-20       
[43] websocket_1.4.4         curl_7.0.0              processx_3.8.6         
[46] lattice_0.22-7          withr_3.0.2             S7_0.2.0               
[49] evaluate_1.0.5          units_0.8-7             proxy_0.4-27           
[52] xml2_1.4.0              pillar_1.11.1           tigris_2.2.1           
[55] KernSmooth_2.23-26      generics_0.1.4          sp_2.2-0               
[58] chromote_0.5.1          hms_1.1.3               class_7.3-23           
[61] glue_1.8.0              lazyeval_0.2.2          tools_4.5.0            
[64] data.table_1.17.8       grid_4.5.0              slippymath_0.3.1       
[67] crosstalk_1.2.2         raster_3.6-32           cli_3.6.5              
[70] rappdirs_0.3.3          textshaping_1.0.3       viridisLite_0.4.2      
[73] svglite_2.2.1           gtable_0.3.6            digest_0.6.37          
[76] classInt_0.4-11         htmlwidgets_1.6.4       farver_2.1.2           
[79] htmltools_0.5.8.1       lifecycle_1.0.4         mime_0.13              
[82] aws.signature_0.6.0     protolite_2.3.1        

Footnotes

  1. The Dictionary of Real Estate Appraisal, 7th ed. (Chicago: Appraisal Institute, 2022), s.v. “comparative analysis.”↩︎

  2. The Appraisal of Real Estate, 15th ed. (Chicago: Appraisal Institute, 2020), 362.↩︎

  3. Appraisal of Real Estate, 15th ed. , 376.↩︎