Blog · Finance metrics and formulas
Same-store sales growth compares a fixed group of eligible stores across matched periods. Define the cohort, calculate the weighted growth rate and reconcile openings, closures and remodel exclusions to total company sales.
Same store sales growth measures the sales change for a fixed group of stores that qualify in both comparison periods. Calculate it from the cohort's total net sales, rather than averaging individual store growth rates. Then explain openings, closures and other excluded stores in a separate bridge to company sales.
The most consequential part is the cohort definition. A correct formula applied to different store populations can still produce a misleading growth rate.
Same-store sales growth = (Current-period net sales for the comparable cohort / Prior-period net sales for the same cohort) − 1
Use net merchandise sales on a consistent basis, including the same treatment of returns, discounts and sales tax in both periods. Save the store IDs in the cohort, the dates used to determine eligibility and the reason for every exclusion. Those records make the result repeatable.
There is no universal population rule. Target's annual report describes comparable sales using equal-length periods and excludes stores open less than 13 months or already closed. It also cautions that retailers' definitions vary. Treat a company's published definition as specific to that company, rather than an industry benchmark.
Same-store sales answers how an established trading base performed. It differs from total revenue growth and from CAGR, which measures a compounded change over a longer interval without defining a store cohort.
For this example, a US specialty retailer adopts the following reporting policy:
The prior period is January 5 through February 1, 2025. The current period is January 4 through January 31, 2026. Both cover 28 days, from Sunday through Saturday, across the same four fiscal weeks.
Matching calendar dates is not always sufficient. The National Retail Federation's retail calendar guidance explains how its calendar aligns weekends and holidays for comparable reporting. Follow your own fiscal calendar and disclose any holiday shift or extra-week adjustment. Do not silently compare a longer trading period with a shorter one.
Approve exclusions before inspecting store performance. Otherwise, removing a weak location as an exceptional item can turn a reporting rule into a way to improve the headline.
Stores A, B and C satisfy the policy. New opened on June 1, 2025. Closed ceased trading on March 31, 2025. Remodel temporarily closed during January 11 through January 17, 2026. Their sales remain visible even though they are ineligible for the cohort.
| Store | Comparable? | Prior sales (USD) | Current sales (USD) | Sales change (USD) | Store growth |
|---|---|---|---|---|---|
| A | Yes | 100,000 | 110,000 | 10,000 | 10.0% |
| B | Yes | 200,000 | 210,000 | 10,000 | 5.0% |
| C | Yes | 150,000 | 135,000 | −15,000 | −10.0% |
| New | No: recent opening | 0 | 60,000 | 60,000 | Not applicable |
| Closed | No: permanently closed | 40,000 | 0 | −40,000 | −100.0% |
| Remodel | No: temporary closure | 50,000 | 30,000 | −20,000 | −40.0% |
| All stores | 540,000 | 545,000 | 5,000 | 0.9% |
Build the comparable numerator and denominator from the eligible rows only:
| Step | Calculation | Result |
|---|---|---|
| Prior cohort sales (USD) | 100,000 + 200,000 + 150,000 | 450,000 |
| Current cohort sales (USD) | 110,000 + 210,000 + 135,000 | 455,000 |
| Cohort sales change (USD) | 455,000 − 450,000 | 5,000 |
| Same-store sales growth | 5,000 / 450,000 | 1.1% |
| Total company sales growth | 5,000 / 540,000 | 0.9% |
Percentages are rounded to one decimal place after calculation. The cohort and company happen to gain the same dollar amount because the excluded groups' changes offset in this example. Their growth rates differ because they use different prior-sales bases.
Place store IDs in column A, a clean Yes or No eligibility flag in B, prior sales in C and current sales in D. Rows 2 through 7 contain the six stores. Use the same flag for both totals:
=SUMIFS(C2:C7,B2:B7,"Yes")
=SUMIFS(D2:D7,B2:B7,"Yes")
If those totals are in C9 and D9, the growth formula is:
=IF(C9=0,NA(),D9/C9-1)
Microsoft documents SUMIFS as summing values that meet stated criteria. Use a separate eligibility register to explain the flag; the formula cannot decide whether a remodel qualifies. Excel is a Microsoft product; Covirage is not affiliated with Microsoft.
The weighted check is (100,000 × 10% + 200,000 × 5% + 150,000 × −10%) / 450,000 = 1.1%. Its numerator reconstructs the cohort's $5,000 sales change. The simple average of the three growth rates is 1.7%, which gives the smallest store the same influence as the largest.
The bridge must explain every store, including excluded locations:
| Bridge step | Sales change (USD) | Running sales total (USD) |
|---|---|---|
| Prior company sales | 540,000 | |
| Comparable-store change | 5,000 | 545,000 |
| New-store change | 60,000 | 605,000 |
| Closed-store change | −40,000 | 565,000 |
| Remodel-store change | −20,000 | 545,000 |
The final $545,000 matches the current-period sales table. A missing store, duplicated store ID or unexplained exclusion breaks that identity. Complete this reconciliation before discussing why the comparable rate changed.
For an international business, also define whether growth uses reported or constant currency. Currency and multi-entity roll-ups covers the reconciliation behind that separate adjustment. The present example contains only USD sales.
Bring a store sales export, store opening and closure dates, a remodel exclusion list and your fiscal-period mapping. Covirage maps the columns; its tools compute and check the cohort totals and company reconciliation, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See revenue driver analysis for the supporting growth perspective.
The company must define and disclose its own threshold. A policy might require a full operating year before the comparison begins, while another company uses a different age rule. Apply that policy consistently rather than assuming every retailer calculates the metric identically.
Under the fixed-cohort method here, a store that did not trade throughout both periods is excluded from both comparable totals. Its lost sales still appear in the reconciliation to company revenue. Published company definitions can treat eligibility differently.
It measures sales dollars unless explicitly defined otherwise. Higher prices, more transactions or a different basket mix can all change the result. Use transaction counts and realized prices alongside the metric when the decision depends on underlying unit demand.
Set the channel policy before calculating. A store-only measure should keep digital sales separate; an omnichannel measure needs a consistent allocation rule across both periods. Otherwise, moving an order between fulfillment channels can change store results without changing customer demand.