ZHU PROPERTIES / Market analytics

Calgary residential market

Explore transaction samples, price trends and model estimates by period, property type and community.

Data through2026-10-2321,963 Residential records

Calgary residential export sample · definitions provisional Coverage

Filter market dataPast 3 months · All communities · All types
Period
Reset

Swipe to see all sections →

Past 3 months 2026-07-24 — 2026-10-23

Download period summary CSV
Records4,998Previous period: -20.3%
Median price$575,000Previous period: -2%
Price per sq. ft.$392$/ft²
Median DOM32 daysPrevious period: +28%

Full historical trends · Amounts in Canadian dollars

Transaction activity

Selected time windowIncomplete month / week

Trends retain all history for the selected community and property type. Gold shading marks your chosen window; hatching and dashed lines mark incomplete periods, which are not directly comparable with full months or weeks.

Time on market

Time on market among sold records

Within 14 days
21.9%
Within 30 days
48.7%
Over 90 days
9.5%
75th percentile DOM
59 days
Five periods compared · Current filters
Five periods compared
PeriodRangeRecordsRecords per dayMedian priceMean priceTotal valuePrice per sq. ft.Median DOM
Past week2026-10-17
2026-10-23
34148.7$575,400$676,640$230,734,284$40332
Past month2026-09-24
2026-10-23
1,50950.3$572,500$644,910$973,169,884$39230
Past 3 months2026-07-24
2026-10-23
4,99854.3$575,000$646,188$3,229,649,659$39232
Past 6 months2026-04-24
2026-10-23
11,26761.6$580,000$651,460$7,339,996,513$39428
Past year2025-10-24
2026-10-23
20,66256.6$575,000$642,094$13,266,937,835$39328

Periods overlap. Changes compare the preceding non-overlapping period and are omitted when coverage is incomplete. Use daily counts when period lengths differ.

Price distribution

Box: 25th–75th percentile; centre: median; ends: 10th–90th percentile.

Area and price

Select a point to inspect its values.

Up to 650 evenly sampled anonymous records are plotted; all records contribute to statistics.

Transaction mix

Bedrooms

Area bands

Age bands

Communities

No price ranking below 10 records; 10–29 records are marked as a small sample. Ranges are approximate 95% confidence intervals for the median, without property-feature adjustment.

Community map

Quantile bands use communities with enough records in the current filter. Darker shades mean higher values. Grey means insufficient or unmatched data.

Select a community to inspect its summary without changing filters. Use “Filter to this community” for details. Municipal boundaries may differ from MLS areas. Communities without matching boundaries remain in the table. Boundaries: City of Calgary Open Data

CommunityRecordsMedian priceMedian intervalPrice per sq. ft.Median DOM

Statistics & machine learning

Models use the full export sample and do not retrain with the filters above. The estimator uses an interpretable GAM; random forest and XGBoost provide predictive comparisons.

Training15,5242025-10-02 — 2026-06-30
Interval calibration1,9072026-07-01 — 2026-07-31
Independent test3,3172026-08-01 — 2026-09-30

Performance on a later test period

Sorted by mean absolute error; lower is better. Gold highlights the GAM used by the estimator. Full metrics are available below. Amounts in Canadian dollars

View all error metrics
ModelMean absolute errorRoot mean squared errorMean percentage errorMedian percentage error
Community / type median$131,049$255,42019.1%13.2%
Multiple linear regression$132,587$244,43219%16%
GAM + community effects$85,013$157,00212.8%9.5%
Random forest$81,555$159,06811.8%8.5%
XGBoost$90,734$169,35513.4%10.4%

Earlier records predict the next month. Addresses present in validation, calibration or test data are excluded from the corresponding training set. The test set is not used for tuning.

Prediction interval

Target coverage
80%
Observed test coverage
78.9%

Intervals use GAM log residuals from the calibration period. Historical coverage does not guarantee future coverage.

DOM model for sold records

Mean absolute error
24.8 days
Median baseline error
26.2 days

Estimates time on market among sold homes only, not the probability that a listing will sell.

Property-adjusted price index

Adjusted indexRaw median index

GAM controls for area, age, type, bedrooms, bathrooms, garage, basement and community. October 2025 = 100; first and last months are incomplete. Shading is an approximate model-conditional 95% confidence interval. This is not an official index.

Area, age and price · Area

Area, age and price · Age in years

Curves show price ratios relative to a reference home, holding other features fixed. They describe associations, not causal effects.

Actual and predicted test prices

Anonymous sample; the dashed line represents perfect agreement. Metrics use all test records.

Random forest variable importance

Increase in training out-of-bag error after permuting a variable. Importance does not imply causation.

Error by property type

Property typeRecordsMean absolute errorMean percentage error
Apartment675$55,50917.8%
Attached / row housing488$56,07412.3%
Duplex341$84,80410.7%
House1,765$105,39611.5%
Other48$46,11812.8%
Forward validation

2026-05-01 — 2026-05-31

ModelMean absolute errorMean percentage error
Community / type median$137,74818.1%
Multiple linear regression$135,22217.7%
GAM + community effects$84,41811.6%
Random forest$83,09611%
XGBoost$92,70812.2%

2026-06-01 — 2026-06-30

ModelMean absolute errorMean percentage error
Community / type median$136,29017.7%
Multiple linear regression$136,59317.7%
GAM + community effects$82,86911.1%
Random forest$79,03510.3%
XGBoost$90,48211.7%
Linear regression coefficients
FieldLog-price coefficientStandard error
(Intercept)8.208910.04655
Log area0.630600.00697
Age in years-0.004040.00020
I(age^2)0.000080.00000
Bedrooms0.005200.00226
Bathrooms (half bath = 0.5)0.109570.00342
Garage0.131840.00443
basementunknown0.010240.01350
basementyes0.077240.00833
typeattached-0.147290.01483
typeduplex0.068630.01645
typehouse0.110290.01613
typeother-0.173560.01918

Records to review

Ranked by out-of-sample deviation. Renovations, tenure and transaction conditions may explain differences; they do not establish undervaluation, opportunity or error.

Record dateCommunityProperty typeRecorded pricePredicted priceDeviation
2026-08-20Aspen WoodsDuplex$2,265,000$845,775167.8%
2026-08-04Aspen WoodsDuplex$2,450,000$1,008,386143%
2026-09-21Windsor ParkHouse$2,940,000$1,326,206121.7%
2026-08-20MahoganyApartment$975,000$444,902119.1%
2026-08-12CranstonHouse$1,526,000$716,641112.9%
2026-09-05MahoganyApartment$740,000$348,075112.6%
2026-09-14Spruce CliffApartment$1,035,000$503,706105.5%
2026-08-28CranstonHouse$1,520,000$741,703104.9%
2026-09-25PattersonHouse$1,750,000$861,905103%
2026-09-01MahoganyApartment$665,000$332,415100.1%
2026-08-06Eau ClaireApartment$1,337,000$669,79699.6%
2026-08-03EdgemontHouse$1,350,000$703,89591.8%
2026-09-08Crescent HeightsHouse$1,480,000$773,29491.4%
2026-09-15University DistrictApartment$1,378,850$737,74186.9%
2026-09-20MahoganyApartment$725,000$392,24484.8%

Price & comparable records

Enter property features to see an estimated value, lower and upper prediction bounds, and similar historical records.

Valuation reference date: 2026-10-23

Enter property features to see an estimated value, lower and upper prediction bounds, and similar historical records.

Based on the historical sample and recorded features. Renovations, views, tenure and live market changes are not included. This is not a formal appraisal. Area is provisionally interpreted as square feet; field definitions await confirmation.

Home evaluation ↗ Request a private consultation ↗

Estimated range and comparable sales

Prediction intervalEstimated valueSimilar historical records

The band is this home's prediction interval, the vertical line its estimate, and dots are comparable historical sale prices. Comparables are not feature-adjusted and are not a predictive distribution for this home. Amounts are in CAD.

Additional analysis: conditional price quantiles

10th, 50th and 90th percentile regression uses area, age, type, bedrooms, bathrooms, garage and basement, without community. It describes a conditional price distribution, separate from the GAM interval for a home.

Observed test coverage: 75.1% (80%)

Similar historical records

Ranked by type, community, area, age, bedrooms, bathrooms and recency. Addresses, MLS identifiers and personal details are not displayed.

Find schools by address →

Record dateCommunityAreaBedroomsBathrooms (half bath = 0.5)Year builtPriceMedian DOMSchool
Model adjustments from the reference home

Reference: Brentwood, House category, 1,400 sq. ft., age 25, 3 beds, 2 baths, garage and basement.

Data & methods

Field definitions

Provisionally: St=S means sold, Current Price is sale price, Stat Date is sale date, and RMS Total is square feet. Source definitions await confirmation, so all results are labelled as export-sample analysis.

Coverage

Deduplicated Calgary residential exports; sales outside Calgary stay in the local source files. Full-market coverage has not been confirmed; counts must not be presented as citywide totals. The default reporting date follows the latest record and never presents old data as live.

2025-10-02 — 2026-10-23 · 21,963 records

Preparation and checks

Deduplicated by MLS, ignoring export row numbers. Different MLS records at the same address are retained. Only Calgary rows enter the analysis; unusable year built and other required fields are dropped, not imputed. Blanks, currency and dates are converted explicitly. Assessed value and lot size are excluded from first-version models due to substantial missingness.

Only allowlisted analytical fields are published. Owners, phone numbers, agents, addresses and MLS identifiers remain local with the source files and full R models.

Build year later than record year
28
DOM differs from date difference
2,715
Tax amount above $50,000
8
Additional records at repeated addresses
160

These are review flags, not automatic deletions. Future-built records use age zero in models, while the original year is retained.

Data quality
FieldMissing recordsMissing rate
Ownership Type21,963100%
Township21,91099.8%
Frontage Lng6,72330.6%
Frontage Ft6,71930.6%
Lot Size SF6,68130.4%
Tax Assessed Value6,15028%
Basement4,19619.1%
Tax Year6483%
Tax Amount5992.7%
Zoning60%
Structure Type60%
Front Exposure60%
Rooms Above Grade60%
Ensuite YN60%
Subdivision Name20%
Restrictions10%
MLS® #00%
Address00%
City00%
St00%
Current Price00%
RMS Total00%
Style00%
Property Type00%
Listing Contract Date00%
Parking 00%
Ownership Interest00%
Beds00%
Full Baths00%
Half Baths00%
Year Built00%
DOM00%
Stat Date00%

Models and limitations

Price models use log prices and estimate a typical conditional price. Realized DOM, buyer agent and final sale date are not predictors. Community random effects partially pool small samples. The estimator uses a GAM refitted on the full snapshot; validation metrics come from an earlier independent test model.

Earlier records predict the next month. Addresses present in validation, calibration or test data are excluded from the corresponding training set. The test set is not used for tuning.

No price ranking below 10 records; 10–29 records are marked as a small sample. Ranges are approximate 95% confidence intervals for the median, without property-feature adjustment.

Intervals use GAM log residuals from the calibration period. Historical coverage does not guarantee future coverage.

Analyses requiring additional data

Inventory and absorption

Require dated active inventory, new, withdrawn and expired listings.

Sale probability and survival analysis

Require complete listing cohorts, unsold records and observation end dates.

Sale-to-list ratios and price reductions

Require original asking prices and price-change history.

Annual comparisons and long-range forecasts

Require a complete preceding year; stable seasonal and long-range forecasts need several years.

Updating the analysis

After adding source files, rerun the R merge, analysis and validation, then update the website data. This page does not automatically fetch new MLS records.