Forecasting Demand for a New Store Location
10 min read · updated August 11, 2026
A site that does not exist has no history, so there is no series to model. The standard answer is to build one out of comparable sites that do exist, weighted by how comparable they are — and the weighting scheme, which looks like a detail, changes the answer and the uncertainty around it more than the choice of comparables does.
A series with no history
Every method on the rest of this cluster assumes a past. A new location has none, which makes it a cold-start problem in its purest form: the entire forecast has to come from attributes, borrowed from sites whose attributes resemble the new one.
The analog method is the oldest version of this and still the one to start with, because every step of it is inspectable by the people who will have to sign off on the number. Pick features that plausibly drive demand, measure the distance from the new site to each existing one in that feature space, weight the existing sites by proximity, and take a weighted average of their observed performance.
Distance in feature space, not on a map
The word “distance” misleads here. Geographic distance is usually the wrong metric: a store 200km away in a demographically identical town is a far better analog than one 3km away across a motorway in a different income bracket. What you want is distance in the space of demand drivers.
Here is the worked case. Two features, kept to two so the arithmetic is checkable: catchment population in thousands, and the number of competitors within two kilometres. Five existing sites with their observed steady-state weekly revenue, and one new site to forecast. These figures are the assumptions; everything after them is arithmetic.
site population (k) competitors weekly revenue A 40 3 $88,000 B 55 4 $105,000 C 28 2 $70,000 D 44 6 $76,000 E 38 1 $95,000 NEW 42 3 ?
Features on different scales cannot be compared directly — population measured in thousands would dominate a competitor count measured in units purely because its numbers are bigger. Standardise each feature by subtracting its mean over the analog set and dividing by its population standard deviation:
population: mean 41.0, sd 8.76 competitors: mean 3.2, sd 1.72
z(pop) z(comp) distance to NEW
A −0.114 −0.116 0.228
B 1.597 0.465 1.593
C −1.483 −0.698 1.700
D 0.342 1.628 1.759
E −0.342 −1.279 1.249
NEW 0.114 −0.116 —Site A is almost the new site: 40k against 42k population, three competitors against three. Its standardised distance is 0.228 while every other site is above 1.2. That is the situation the weighting has to handle, and it is a common one — you usually do have one close analog.
Two weightings, two different answers
The textbook weight is inverse squared distance, w = 1/d². Apply it:
site d d² w = 1/d² share of total weight
A 0.228 0.052 19.23 91.9%
B 1.593 2.537 0.394 1.9%
C 1.700 2.889 0.346 1.7%
D 1.759 3.093 0.323 1.5%
E 1.249 1.561 0.641 3.1%
------
20.934
forecast = ( 19.23×88 + 0.394×105 + 0.346×70 + 0.323×76 + 0.641×95 ) / 20.934
= 1,843 / 20.934
= $88,050 per weekThe number looks fine and the process that produced it is not. Site A holds 91.9% of the weight, so this is not an analog-weighted forecast, it is site A’s revenue with a rounding error attached. The four other sites contributed nothing, and any spread you compute from these weights will be absurdly narrow — the method has told you it is almost certain, on the strength of one observation.
That is a property of 1/d², not of this data: as d → 0 the weight diverges. A Gaussian kernel with a bandwidth h bounds the weight at 1 and degrades smoothly. With h = 1 in standardised units:
w = exp( −d² / 2h² ), h = 1
site d² w share
A 0.052 0.974 45.1%
B 2.537 0.281 13.0%
C 2.889 0.236 10.9%
D 3.093 0.213 9.8%
E 1.561 0.458 21.2%
-----
2.163
forecast = ( 0.974×88 + 0.281×105 + 0.236×70 + 0.213×76 + 0.458×95 ) / 2.163
= 191.5 / 2.163
= $88,550 per weekAlmost the same point estimate — $88,550 against $88,050 — but arrived at from a genuine blend. Site A now holds 45% rather than 92%, and the weighted standard deviation across the analogs is a usable measure of how much the comparable sites disagree, which the first scheme destroyed. When two weighting schemes give the same point estimate and wildly different uncertainty, the uncertainty is the part that differed for a reason.
The bandwidth h is the real parameter and it is the same bias-variance choice as a rolling window width: small h uses only the nearest analogs and is noisy, large h averages over dissimilar sites and is biased. With five analogs there is no honest way to tune it by cross-validation; pick a value in standardised units, state it, and show the answer’s sensitivity across a range of it.
The forecast is a curve, not a level
The $88,550 above is a steady-state figure, because the analog revenues were steady-state figures. A new site does not open at steady state. It ramps, over months, as awareness builds and the local customer base forms habits, and the shape of that ramp is the thing the first year’s cash flow depends on.
Forecast the two separately. The analog method gives the mature level. The ramp curve comes from the opening history of the same analog set, normalised: for each existing site, express its weekly revenue in its first 52 weeks as a fraction of its own mature level, then average those normalised curves. Multiply the ramp by the level and you have a weekly forecast. Keeping them separate matters because the two are driven by different things — the level by catchment and competition, the ramp by marketing spend, format familiarity and whether the brand is already known in that region.
There is a related subtraction that is easy to forget: if the new site is near an existing one, part of its revenue is not new. Cannibalisation means the incremental contribution is the forecast minus the loss at neighbouring sites, and the analog method estimates the first term only. Estimating the second usually means looking at what happened to existing sites when previous nearby openings occurred, which is another analog problem with a smaller sample.
Why every analog set is optimistic
This is the deepest problem with the method and it survives every improvement to the weighting.
Your analog set consists of sites you opened. Sites you evaluated and rejected are not in it, and you rejected them because you expected them to perform badly. So the sample is truncated: it is conditioned on having passed the same approval process the new site is going through. If that process ever rejected a site whose features resembled the new one, the observed performance of the surviving similar sites is systematically above what a randomly chosen site with those features would have achieved.
Sites you opened and later closed compound it, if they have been dropped from the reference data — which they usually have, because closed sites do not appear in the current-estimate reporting the feature table was built from. Both effects push the same way, and neither shows up in any diagnostic the model produces. The estimate can be internally consistent, well cross-validated on the surviving sites, and still biased upward as a prediction for a genuinely new site.
What can be done about it is modest but worth doing. Keep closed and under-performing sites in the analog table with their actual figures. Record the rejected sites and their features, even without an outcome, so at least the shape of the truncation is visible. Present the forecast as a range from the weighted analog spread rather than as a point. And treat the analog forecast as a prior to be updated: after eight to twelve weeks of real trading the new site has its own data, the borrowed structure should be given progressively less weight, and the site should transition onto a normal forecasting model along with whatever exogenous drivers the rest of the estate uses.