Skip to content

Site Rating Scorecard

The site rating scorecard is an alternative to regression that produces a single intuitive score (0–100) for any location. Instead of fitting coefficients statistically, you assign weights to each factor based on their known importance, then score each site.

Site Score = Σ (wᵢ × sᵢ) where Σwᵢ = 100

Each attribute is weighted by importance and scored on a normalized scale.

Example weights (from Birkin & Clarke):

  • Market Size: 50 points
  • Store Size: 30 points
  • Affluence: 10 points
  • Competition: 10 points

“A ratings approach may be used to provide single scores for each site on the basis of the quality of attributes at that location. Each variable may be weighted according to its relative importance.” — Birkin & Clarke, Ch. 7

DatasetWhat We UseLink
FEHD Restaurant LicencesCompetition density scoringView →
Crime StatisticsSafety score componentView →
Rental Indices (RVD)Rent affordability scoringView →
Property PricesArea quality proxyView →
Household IncomeSpending power scoringView →
Air Quality IndexEnvironment quality factorView →
Parking VacancyCar accessibility scoreView →
Building InformationPhysical constraint indicatorsView →
School LocationsFamily-oriented F&B proximity factorView →
Traffic DetectorsFoot/vehicle traffic volumeView →
  1. Choose attributes — the 4–6 factors that drive success in your category
  2. Assign weights — based on regression results or domain expertise (must sum to 100)
  3. Normalize each attribute — convert raw values to 0–10 scale across your portfolio
  4. Multiply and sum — weight × score for each factor = total site rating

Birkin & Clarke scored UK retail sites on 4 attributes:

CityMarket Size (×50)Store Size (×30)Affluence (×10)Competition (×10)Total
Manchester10.0 → 506.0 → 185.0 → 54.0 → 477
Leeds7.0 → 358.0 → 244.0 → 43.0 → 366
Guildford4.0 → 207.0 → 219.0 → 97.0 → 757
Cambridge3.0 → 155.0 → 158.0 → 88.0 → 846

Manchester wins on raw score because it has by far the largest market. But Guildford and Cambridge outperform their ratings — their actual turnover exceeds what the scorecard predicts, suggesting strong local factors the model doesn’t capture.

Strengths:

  • Dead simple — anyone can understand a score out of 100
  • No training data needed (unlike regression)
  • Transparent — you can see exactly why a site scored high or low
  • Easy to adjust weights as you learn more
  • Perfect for comparing sites in a portfolio

Limitations:

  • Weight assignment is subjective without regression backing
  • Assumes factors are independent (ignores interactions)
  • Linear scoring may miss thresholds (e.g., “minimum 10,000 market size or don’t bother”)
  • Doesn’t model consumer behaviour — just attributes
RegressionScorecard
Training data neededYes (20+ stores)No
ObjectivityStatisticalExpert judgment
OutputRevenue estimate ($)Score (0–100)
Best forRevenue predictionSite comparison
TransparencyMediumHigh

Weights: Market Size 30%, Competition 25%, Transport 20%, Safety 10%, Rent Value 15%.

Scoring formulas:

  • Market Size: min(100, density/5000 × 10 × 0.6 + (income/35000 × 100) × 0.4) + captive market boost (+20pts if density <3000 and competitors <10)
  • Competition: 100 if zero competitors; else max(5, round(100 - 35 × log₁₀(competitors))) (logarithmic inverse)
  • Transport: (100 - closestMTR_dist/15) × 0.6 + min(100, ridership/800) × 0.4
  • Safety: max(0, Math.round(100 - crimeRate × 2)) — both score and weighted fields use Math.round()
  • Rent Value: if competitors <15 AND rentRatio >0.8 (low-competition area): max(0, 100 - avgPsf × 0.8) (PSF-based); otherwise: max(0, 100 - rentRatio × 200)

Extreme-value adjustment: After computing the initial weighted sum, categories scoring below 20 apply a −3pt drag each; categories above 90 give +2pt bonus each. Prevents wildly different profiles from producing identical total scores.

Captive market bonus: Added to rawTotal. Tiers: competitors <5 and transportScore <30 → +12pts; competitors <10 and transportScore <30 → +8pts; competitors <20 and transportScore <40 → +4pts. Rationale: remote locations with no competition have captive demand that partially offsets poor accessibility.

Score stretching: Final score is stretched around median=55 with 1.5× amplification: stretched = 55 + (rawTotal - 55) × 1.5. Widens score distribution so high and low performers are more clearly differentiated.

Final range: Capped at max(10, min(90, Math.round(stretched))). No site scores below 10 or above 90.

DateChangeWhy
2026-03-25Rent Value: low-competition areas (competitors <15 and rentRatio >0.8) scored on PSF (100 - avgPsf × 0.8) instead of rent/revenue ratioHigh-income suburban areas like Discovery Bay were penalized for PSF rent despite having near-monopoly conditions
2026-03-25Score stretching added (median=55, 1.5× amplification, final range capped 10–90)Scores clustered in the 60–70 band; differentiation was too narrow for meaningful comparison
2026-03-25Captive market bonus added (up to +12pts for <5 competitors in low-transport areas)Remote locations with genuine monopoly conditions were under-scoring relative to their actual viability
2026-03-25Safety score now Math.round()’d; extreme-value adjustment added (−3pt drag / +2pt bonus per extreme category)Safety showed float like 32.2; Central and Mong Kok both scored 67 despite very different profiles
2026-03-24Initial implementationCompetition score was linear density; architecture issue (Overall Score = Site Rating only) identified

📖 Birkin, M. & Clarke, G. (2023). Retail Geography. Chapter 7: Store Performance Modelling — Site Ratings.