The AVM (Automated Valuation Model) endpoint returns list price, sale price, and monthly rent estimates with confidence scores and model performance metrics.
Pass a property_id to value the property. Each valuation includes R-squared values, error distributions, and hit rates within various percentage bands.
Override property characteristics via query parameters. Returns up to 10 comparable properties within 5km for market context.
AVMs called through the API are added to your API subscription as usage and appear on your next monthly invoice alongside regular API charges. They count toward your subscription's $99 USD monthly minimum. You will not be charged separately for each call.
Prefer not to integrate? Order AVMs manually from your user dashboard as a one-time $5.00 charge to your credit card. No API subscription required.
| Name | Required | Type | Description |
|---|---|---|---|
| api_key | Yes | UUID v4 | Your API key for authorization |
| property_id | Yes | String | The unique identifier for the property to value. |
| bedroom | No | Integer | Number of bedrooms (overrides property data when provided) |
| den | No | Integer | Number of dens (overrides property data when provided) |
| bathroom_full | No | Integer | Number of full bathrooms (overrides property data when provided) |
| bathroom_half | No | Integer | Number of half bathrooms (overrides property data when provided) |
| construction_year | No | Integer | Year the property was built (overrides property data when provided) |
| interior_sq_m | No | Float | Interior square meters (overrides property data when provided) |
| property_type | No | String | Property type (overrides property data when provided) |
| maintenance_fee | No | Float | Monthly maintenance fee (overrides property data when provided) |
| garage_type_first | No | String | Garage type (overrides property data when provided) |
Type declarations are available at the bottom of this page.
| Name | Type | Description |
|---|---|---|
| url | String | Link to the web report for this valuation. Empty on a price quote |
| data | AvmValuation | Contains the complete valuation data including estimates and comparables |
| error | String | Details about the error. Empty if no error |
| time_ms | Integer | Time taken for the request to complete in milliseconds |
| cost_cents | Float | Cost of the API call in cents (500 cents is $5.00) |
| price_quote | Boolean | Indicates if this is a price quote request (no charge) |
| cache_hit | Boolean | Indicates if the response was a cache hit |
| Name | Type | Description |
|---|---|---|
| property_warning_flags | Array<AvmWarningFlag> | Concerns noticed about the property and its area, such as natural hazards, older wiring, or high monthly fees. They do not describe confidence in the estimate |
| interior_sq_m | Float | Interior square meters |
| property_type | String | Property type (House, Condo, Townhouse, etc.) |
| bedroom | Integer | Number of bedrooms |
| den | Integer | Number of dens |
| bathroom_full | Integer | Number of full bathrooms |
| bathroom_half | Integer | Number of half bathrooms |
| construction_year | Integer | Year the property was built |
| property_id | String | The property identifier |
| image | String | Image identifier, not a link. Request the image at https://www.houski.ca/api/image/featured/{image}?key={your_api_key}, and add the thumbnail=true query parameter for a smaller version. Empty when the property has no image |
| address | String (nullable) | Property address, or null when none is on file |
| city | String (nullable) | City name, or null when none is on file |
| country | String (nullable) | Full country name, such as Canada, or null when none is on file |
| province | String (nullable) | Full province or state name, such as Alberta, or null when none is on file |
| latitude | Float | Property latitude coordinate |
| longitude | Float | Property longitude coordinate |
| estimate_list_price | AvmSingleValuation | Estimated listing price with confidence score and detailed model performance metrics |
| estimate_sale_price | AvmSingleValuation | Estimated sale price with confidence score and detailed model performance metrics |
| estimate_rent_monthly | AvmSingleValuation | Estimated monthly rent with confidence score and detailed model performance metrics |
| price_history | Array<Prediction> | Model estimates of list price, sale price, and monthly rent for this property today and every 30 days back over roughly the last 18 months, oldest first. These are model estimates for past dates, not recorded sales. Each entry has the same shape as a prediction from the /predict endpoint, and a value is left out when its model could not produce one |
| valuation_date | String | Date the valuation was performed (YYYY-MM-DD) |
| score_air_quality | Integer (nullable) | Local air quality from 0 to 10, where higher means cleaner measured air |
| score_bicycle | Integer (nullable) | Bicycle friendliness from 0 to 10, where higher means more cycling infrastructure such as bike paths and lanes |
| score_cell_coverage | Integer (nullable) | Cellular network coverage from 0 to 10, where higher means better mobile connectivity |
| score_curb_appeal | Integer (nullable) | How appealing the area around the home tends to look from the street, from 0 to 10, where higher means a more attractive area |
| score_earthquake | Integer (nullable) | Earthquake safety from 0 to 10, where higher means lower seismic hazard |
| score_education | Integer (nullable) | Access to nearby schools from 0 to 10, where higher means more schools within easy reach. It does not measure school quality |
| score_entertainment | Integer (nullable) | Local entertainment and recreation from 0 to 10, where higher means more venues and activities nearby |
| score_family | Integer (nullable) | Family friendliness from 0 to 10, where higher means families with children are more common in the area |
| score_fire | Integer (nullable) | Fire safety from 0 to 10, where higher means lower wildfire exposure |
| score_flood | Integer (nullable) | How often the area around the property floods, from 0 to 10, where higher means the area floods less often. It describes the area, not the individual property |
| score_food_and_drink | Integer (nullable) | Places to eat and drink from 0 to 10, where higher means more restaurants, cafes, and bars close by |
| score_hurricane | Integer (nullable) | Hurricane safety from 0 to 10, where higher means lower exposure to tropical storm wind |
| score_internet | Integer (nullable) | Speed and choice of internet options at the property from 0 to 10, where higher means faster connections and more types of service |
| score_nature | Integer (nullable) | Nearby green space from 0 to 10, where higher means more parks, forests, and natural areas close by |
| score_parking | Integer (nullable) | Parking supply from 0 to 10, where higher means more plentiful parking in the area |
| score_quiet | Integer (nullable) | Quietness from 0 to 10, where higher means less noise |
| score_retirement | Integer (nullable) | Retirement friendliness from 0 to 10, where higher means the area leans more toward older, settled residents |
| score_safety | Integer (nullable) | Neighbourhood safety from 0 to 10, where higher means less reported crime |
| score_shopping | Integer (nullable) | Shopping access and variety from 0 to 10, where higher means better shopping options |
| score_smell | Integer (nullable) | Odour from 0 to 10, where higher means fewer unpleasant smells |
| score_tornado | Integer (nullable) | Tornado safety from 0 to 10, where higher means lower tornado exposure |
| score_total | Integer (nullable) | Overall Houski score out of 10, combining the individual scores except curb appeal. Higher is better |
| score_total_percent | Float (nullable) | Overall Houski score as a percentage from 0 to 100, combining the individual scores except curb appeal. Higher is better |
| score_traffic | Integer (nullable) | Traffic from 0 to 10, where higher means less exposure to busy major roads |
| score_transit | Integer (nullable) | Public transit access from 0 to 10, where higher means better transit options |
| score_walkability | Integer (nullable) | Walkability from 0 to 10, where higher means more connected streets and more everyday destinations within walking distance |
| score_water_quality | Integer (nullable) | Quality of nearby surface water such as rivers and lakes from 0 to 10, where higher means cleaner water. It does not measure tap water |
| comparable_properties_total | Integer | Total number of comparable properties in the same city and type |
| comparable_properties | Array<AvmComparableProperty> | Up to 10 comparable properties of the same type in the same city, within 5 km, with an interior size within 20% of this property, and with an estimated sale date and a list price on file. They are ranked most similar first, by a score that weighs the gap between their list price and this property's estimated list price, the gap in interior size, and, more lightly, the distance |
Each valuation includes:
| Name | Type | Description |
|---|---|---|
| value | Float | The estimated value in dollars |
| confidence_score | Float | Confidence percentage (0-100) based on model accuracy |
| model_metrics | AvmModelMetrics | Detailed performance metrics including R-squared, MAPE, error percentiles, and hit rates |
Model performance metrics per valuation type:
| Name | Type | Description |
|---|---|---|
| Performance metrics | ||
| training_r_squared | Float | R-squared value on training data (0-1, higher is better) |
| testing_r_squared | Float | R-squared value on testing data (0-1, higher is better) |
| Error metrics | ||
| mae | Float | Mean Absolute Error in dollars |
| rmse | Float | Root Mean Square Error in dollars |
| mape | Float | Mean absolute percentage error (MAPE), in percent (5 means 5%), lower is better |
| median_mape | Float | Median absolute percentage error, in percent (5 means 5%), lower is better |
| mse | Float | Mean Squared Error in dollars squared |
| Accuracy bands | ||
| within_5_pct | Float | Percentage of predictions within 5% of actual value, from 0 to 100 |
| within_10_pct | Float | Percentage of predictions within 10% of actual value, from 0 to 100 |
| within_15_pct | Float | Percentage of predictions within 15% of actual value, from 0 to 100 |
| within_20_pct | Float | Percentage of predictions within 20% of actual value, from 0 to 100 |
| Bias metrics | ||
| mean_bias | Float | Average prediction bias in dollars (positive = over-prediction) |
| median_bias | Float | Median prediction bias in dollars (positive = over-prediction) |
| over_prediction_rate | Float | Percentage of predictions that are over-estimates, from 0 to 100 |
| under_prediction_rate | Float | Percentage of predictions that are under-estimates, from 0 to 100 |
| Error distribution | ||
| error_10th_percentile | Float | 10th percentile of absolute errors in dollars |
| error_25th_percentile | Float | 25th percentile of absolute errors in dollars |
| error_50th_percentile | Float | 50th percentile (median) of absolute errors in dollars |
| error_75th_percentile | Float | 75th percentile of absolute errors in dollars |
| error_90th_percentile | Float | 90th percentile of absolute errors in dollars |
| error_95th_percentile | Float | 95th percentile of absolute errors in dollars |
| pct_error_10th | Float | 10th percentile of absolute percentage errors, in percent (5 means 5%) |
| pct_error_90th | Float | 90th percentile of absolute percentage errors, in percent (5 means 5%) |
| Uncertainty metrics | ||
| forecast_std_dev | Float | Standard deviation of prediction errors in dollars |
| coefficient_of_variation | Float | Coefficient of variation, in percent: the standard deviation of prediction errors divided by the mean prediction, times 100. Lower is better |
| Name | Type | Description |
|---|---|---|
| address | String | Property address |
| image | String | Image identifier, not a link. Request it the same way as the image field on the AvmValuation object. Empty when the property has no image |
| latitude | Float | Latitude coordinate |
| longitude | Float | Longitude coordinate |
| distance_km | Float | Distance from target property in kilometers |
| interior_sq_m | Float | Interior square meters |
| list_price | Integer | Original listing price |
| estimate_sale_date_sold | String | Estimated sale date in YYYY-MM-DD. It is inferred from listing history as the date the property left the market, not a recorded closing date. |
| Name | Type | Description |
|---|---|---|
| warning | String | Short readable title for the concern, such as Elevated flood risk |
| description | String | Detailed description of the warning or issue |
Select the programming language you want to display the code examples in.
curl -X GET "http://127.0.0.1:8080/avm?api_key=YOUR_API_KEY&property_id=bd9c6fb24c31c772"
const houski_avm_data = async (): Promise<AvmResponse> => {
// You must copy the AvmResponse type declarations from the
// Houski API documentation to strongly type the response
const url = new URL('http://127.0.0.1:8080/avm');
url.searchParams.set('api_key', 'YOUR_API_KEY');
url.searchParams.set('property_id', 'bd9c6fb24c31c772');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: AvmResponse = await houski_avm_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 500.0,
"data": {
"address": "302 610 17 Avenue SW",
"bathroom_full": 1,
"bathroom_half": 1,
"bedroom": 2,
"city": "Calgary",
"comparable_properties": [
{
"address": "402 610 17 Avenue SW",
"distance_km": 0.0,
"estimate_sale_date_sold": "2025-02-07",
"image": "589c5b211ab31176_46d18d02",
"interior_sq_m": 91.88034057617188,
"latitude": 51.03819274902344,
"list_price": 295000,
"longitude": -114.07510375976562
},
{
"address": "101 523 15 Avenue SW",
"distance_km": 0.15784955024719238,
"estimate_sale_date_sold": "2023-08-29",
"image": "6d3f02fca68d547e_b6f2526e",
"interior_sq_m": 91.9732437133789,
"latitude": 51.0385856628418,
"list_price": 288888,
"longitude": -114.07293701171876
},
{
"address": "703 537 14 Avenue SW",
"distance_km": 0.18044060468673703,
"estimate_sale_date_sold": "2023-07-23",
"image": "8bca5ee00db4f5e5_3a9d45c2",
"interior_sq_m": 89.46488189697266,
"latitude": 51.03955841064453,
"list_price": 300000,
"longitude": -114.07371520996094
},
{
"address": "406 537 14 Avenue SW",
"distance_km": 0.18044060468673703,
"estimate_sale_date_sold": "2023-07-23",
"image": "7fd14d9cddc90cd8_df5c16da",
"interior_sq_m": 89.2790756225586,
"latitude": 51.03955841064453,
"list_price": 298900,
"longitude": -114.07371520996094
},
{
"address": "1105 1209 6 Street SW",
"distance_km": 0.4003704786300659,
"estimate_sale_date_sold": "2023-08-23",
"image": "59eb4d7ffd625770_807d4658",
"interior_sq_m": 92.99517059326172,
"latitude": 51.04155349731445,
"list_price": 299900,
"longitude": -114.07714080810548
},
{
"address": "1005 1209 6 Street SW",
"distance_km": 0.4003704786300659,
"estimate_sale_date_sold": "2023-09-09",
"image": "2415d490f50aff2f_f7d47327",
"interior_sq_m": 93.73838806152344,
"latitude": 51.04155349731445,
"list_price": 299900,
"longitude": -114.07714080810548
},
{
"address": "401 1209 6 Street SW",
"distance_km": 0.4003704786300659,
"estimate_sale_date_sold": "2024-01-18",
"image": "add60c129cc174c8_15dc7a7e",
"interior_sq_m": 92.90226745605467,
"latitude": 51.04155349731445,
"list_price": 294000,
"longitude": -114.07714080810548
},
{
"address": "504 616 15 Avenue SW",
"distance_km": 0.11240646988153458,
"estimate_sale_date_sold": "2025-07-04",
"image": "e731e220553c9548_88738769",
"interior_sq_m": 87.79264068603516,
"latitude": 51.03919219970703,
"list_price": 289900,
"longitude": -114.07533264160156
},
{
"address": "305 1209 6 Street SW",
"distance_km": 0.4003704786300659,
"estimate_sale_date_sold": "2024-08-04",
"image": "1119eb5e5c0e6dd6_9dfcbaf5",
"interior_sq_m": 94.2957992553711,
"latitude": 51.04155349731445,
"list_price": 290000,
"longitude": -114.07714080810548
},
{
"address": "210 540 18 Avenue SW",
"distance_km": 0.1524486541748047,
"estimate_sale_date_sold": "2025-09-15",
"image": "fab8d1355031e0aa_2f6f24a0",
"interior_sq_m": 85.47008514404297,
"latitude": 51.03719711303711,
"list_price": 299000,
"longitude": -114.0736083984375
}
],
"comparable_properties_total": 28191,
"construction_year": 1979,
"country": "Canada",
"den": 0,
"estimate_list_price": {
"confidence_score": 95.01814270019533,
"model_metrics": {
"coefficient_of_variation": 39.8504753626973,
"error_10th_percentile": 4338.16259765625,
"error_25th_percentile": 11031.234375,
"error_50th_percentile": 25255.4375,
"error_75th_percentile": 53322.8125,
"error_90th_percentile": 106059.9453125,
"error_95th_percentile": 184402.015625,
"forecast_std_dev": 255608.171875,
"mae": 60686.69140625,
"mape": 8.463743209838867,
"mean_bias": -10692.3330078125,
"median_bias": 414.9375,
"median_mape": 4.9818596839904785,
"mse": 65449492480.0,
"over_prediction_rate": 50.320489737126394,
"pct_error_10th": 0.9080060720443726,
"pct_error_90th": 15.432555198669434,
"rmse": 255830.984375,
"testing_r_squared": 0.94,
"training_r_squared": 0.98,
"under_prediction_rate": 49.679510262873606,
"within_10_pct": 77.83939503060857,
"within_15_pct": 89.31220741807707,
"within_20_pct": 94.54807346056896,
"within_5_pct": 50.14043932301044
},
"value": 298344.6875
},
"estimate_rent_monthly": {
"confidence_score": 93.83267974853516,
"model_metrics": {
"coefficient_of_variation": 22.798548277028747,
"error_10th_percentile": 29.91469955444336,
"error_25th_percentile": 74.45068359375,
"error_50th_percentile": 169.37689208984375,
"error_75th_percentile": 335.43365478515625,
"error_90th_percentile": 655.9906005859375,
"error_95th_percentile": 1026.8118896484375,
"forecast_std_dev": 668.0843505859375,
"mae": 316.8042297363281,
"mape": 10.418495178222656,
"mean_bias": -44.97128677368164,
"median_bias": -3.4735107421875,
"median_mape": 6.167322635650635,
"mse": 448360.4375,
"over_prediction_rate": 49.36860714736709,
"pct_error_10th": 1.1183578968048096,
"pct_error_90th": 21.039480209350582,
"rmse": 669.5972290039062,
"testing_r_squared": 0.71,
"training_r_squared": 0.86,
"under_prediction_rate": 50.63139285263291,
"within_10_pct": 68.802879151408,
"within_15_pct": 82.28943048364692,
"within_20_pct": 89.08953150650335,
"within_5_pct": 42.044450056825355
},
"value": 2266.185791015625
},
"estimate_sale_price": {
"confidence_score": 94.2463607788086,
"model_metrics": {
"coefficient_of_variation": 44.60855523222251,
"error_10th_percentile": 5113.02490234375,
"error_25th_percentile": 13220.5859375,
"error_50th_percentile": 29188.890625,
"error_75th_percentile": 58933.328125,
"error_90th_percentile": 114315.671875,
"error_95th_percentile": 186286.953125,
"forecast_std_dev": 281802.53125,
"mae": 67590.8359375,
"mape": 9.812854766845703,
"mean_bias": -10934.208984375,
"median_bias": -818.546875,
"median_mape": 5.7536420822143555,
"mse": 79532048384.0,
"over_prediction_rate": 49.140341067934024,
"pct_error_10th": 1.0522005558013916,
"pct_error_90th": 18.072734832763672,
"rmse": 282014.28125,
"testing_r_squared": 0.91,
"training_r_squared": 0.95,
"under_prediction_rate": 50.859658932065976,
"within_10_pct": 72.40704500978474,
"within_15_pct": 85.81213307240705,
"within_20_pct": 91.81576740285156,
"within_5_pct": 45.07268660889013
},
"value": 293549.84375
},
"image": "bd9c6fb24c31c772_7e931788",
"interior_sq_m": 92.43848419189452,
"latitude": 51.03819274902344,
"longitude": -114.07510375976562,
"price_history": [
{
"date": "2025-04-05",
"estimate_list_price": 336395.15625,
"estimate_rent_monthly": 2298.380859375,
"estimate_sale_price": 302583.46875
},
{
"date": "2025-05-05",
"estimate_list_price": 335353.5,
"estimate_rent_monthly": 2292.385009765625,
"estimate_sale_price": 304994.75
},
{
"date": "2025-06-04",
"estimate_list_price": 337475.125,
"estimate_rent_monthly": 2290.859619140625,
"estimate_sale_price": 303306.59375
},
{
"date": "2025-07-04",
"estimate_list_price": 336525.09375,
"estimate_rent_monthly": 2290.859619140625,
"estimate_sale_price": 301711.8125
},
{
"date": "2025-08-03",
"estimate_list_price": 333141.28125,
"estimate_rent_monthly": 2226.452392578125,
"estimate_sale_price": 300834.34375
},
{
"date": "2025-09-02",
"estimate_list_price": 332321.34375,
"estimate_rent_monthly": 2226.452392578125,
"estimate_sale_price": 292419.0625
},
{
"date": "2025-10-02",
"estimate_list_price": 320705.0,
"estimate_rent_monthly": 2223.994873046875,
"estimate_sale_price": 291787.28125
},
{
"date": "2025-11-01",
"estimate_list_price": 320006.90625,
"estimate_rent_monthly": 2227.315673828125,
"estimate_sale_price": 292606.8125
},
{
"date": "2025-12-01",
"estimate_list_price": 314523.90625,
"estimate_rent_monthly": 2173.085205078125,
"estimate_sale_price": 289831.78125
},
{
"date": "2025-12-31",
"estimate_list_price": 310465.84375,
"estimate_rent_monthly": 2173.085205078125,
"estimate_sale_price": 286918.28125
},
{
"date": "2026-01-30",
"estimate_list_price": 311569.84375,
"estimate_rent_monthly": 2160.82958984375,
"estimate_sale_price": 286599.125
},
{
"date": "2026-03-01",
"estimate_list_price": 302997.25,
"estimate_rent_monthly": 2141.153076171875,
"estimate_sale_price": 286599.125
},
{
"date": "2026-03-31",
"estimate_list_price": 303709.5,
"estimate_rent_monthly": 2142.2080078125,
"estimate_sale_price": 286457.03125
},
{
"date": "2026-04-30",
"estimate_list_price": 302265.0625,
"estimate_rent_monthly": 2126.92431640625,
"estimate_sale_price": 287158.625
},
{
"date": "2026-05-30",
"estimate_list_price": 299114.4375,
"estimate_rent_monthly": 2130.612060546875,
"estimate_sale_price": 287043.625
},
{
"date": "2026-06-29",
"estimate_list_price": 297828.4375,
"estimate_rent_monthly": 2131.989013671875,
"estimate_sale_price": 293549.84375
},
{
"date": "2026-07-29",
"estimate_list_price": 297253.25,
"estimate_rent_monthly": 2266.185791015625,
"estimate_sale_price": 293549.84375
},
{
"date": "2026-08-28",
"estimate_list_price": 300337.0,
"estimate_rent_monthly": 2266.185791015625,
"estimate_sale_price": 293549.84375
},
{
"date": "2026-09-27",
"estimate_list_price": 298344.6875,
"estimate_rent_monthly": 2266.185791015625,
"estimate_sale_price": 293549.84375
}
],
"property_id": "bd9c6fb24c31c772",
"property_type": "Apartment",
"property_warning_flags": [
{
"description": "Monthly fees run about 4% of the estimated value each year, above the typical range. High fees can weigh on resale.",
"warning": "High monthly fees"
},
{
"description": "This property appears to have been converted between residential and commercial use. Conversions can carry permit, zoning, and insurance complications worth confirming.",
"warning": "Use conversion"
}
],
"province": "Alberta",
"score_air_quality": 6,
"score_bicycle": 9,
"score_cell_coverage": 10,
"score_curb_appeal": 5,
"score_earthquake": 9,
"score_education": 9,
"score_entertainment": 10,
"score_family": 0,
"score_fire": 10,
"score_flood": 9,
"score_food_and_drink": 10,
"score_hurricane": 10,
"score_internet": 10,
"score_nature": 6,
"score_parking": 10,
"score_quiet": 3,
"score_retirement": 0,
"score_safety": 6,
"score_shopping": 9,
"score_smell": 6,
"score_tornado": 8,
"score_total": 7,
"score_total_percent": 0.7320000529289246,
"score_traffic": 0,
"score_transit": 10,
"score_walkability": 10,
"score_water_quality": 8,
"valuation_date": "2026-09-27"
},
"error": "",
"price_quote": false,
"time_ms": 224,
"url": "https://www.houski.ca/avm-report/bd9c6fb24c31c772_a49b86c7"
}
curl -X GET "http://127.0.0.1:8080/avm?api_key=YOUR_API_KEY&bedroom=4&interior_sq_m=200.5&property_id=bd9c6fb24c31c772"
const houski_avm_data_with_overrides = async (): Promise<AvmResponse> => {
// You must copy the AvmResponse type declarations from the
// Houski API documentation to strongly type the response
const url = new URL('http://127.0.0.1:8080/avm');
url.searchParams.set('api_key', 'YOUR_API_KEY');
url.searchParams.set('bedroom', '4');
url.searchParams.set('interior_sq_m', '200.5');
url.searchParams.set('property_id', 'bd9c6fb24c31c772');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: AvmResponse = await houski_avm_data_with_overrides();
// Log the response
console.log(data);
})();
{
"cache_hit": false,
"cost_cents": 500.0,
"data": {
"address": "302 610 17 Avenue SW",
"bathroom_full": 1,
"bathroom_half": 1,
"bedroom": 4,
"city": "Calgary",
"comparable_properties": [
{
"address": "1440 540 14 Avenue SW",
"distance_km": 0.2307419180870056,
"estimate_sale_date_sold": "2026-08-14",
"image": "a9e91311d17717f_a06d58be",
"interior_sq_m": 195.46636962890625,
"latitude": 51.040096282958984,
"list_price": 450000,
"longitude": -114.07379913330078
},
{
"address": "2501 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2024-06-07",
"image": "ef49c9b0a3706ce2_7253638f",
"interior_sq_m": 195.93087768554688,
"latitude": 51.04650115966797,
"list_price": 449900,
"longitude": -114.08673095703124
},
{
"address": "2402 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2024-08-26",
"image": "f5a4edb2ee198738_613aeb73",
"interior_sq_m": 185.1542205810547,
"latitude": 51.04650115966797,
"list_price": 425000,
"longitude": -114.08673095703124
},
{
"address": "2201 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2025-03-25",
"image": "ad532b0602ae5a2a_a4ee12ae",
"interior_sq_m": 186.4548492431641,
"latitude": 51.04650115966797,
"list_price": 450000,
"longitude": -114.08673095703124
},
{
"address": "2401 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2024-01-28",
"image": "88b949347f84ea29_85f7917d",
"interior_sq_m": 186.4548492431641,
"latitude": 51.04650115966797,
"list_price": 488800,
"longitude": -114.08673095703124
},
{
"address": "2403 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2026-09-17",
"image": "a2b1c04649e990_a6a422aa",
"interior_sq_m": 230.1189117431641,
"latitude": 51.04650115966797,
"list_price": 475000,
"longitude": -114.08673095703124
},
{
"address": "1702 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2023-03-22",
"image": "551cc5dd7c1e07a2_4f36f538",
"interior_sq_m": 172.89111328125,
"latitude": 51.04650115966797,
"list_price": 375000,
"longitude": -114.08673095703124
},
{
"address": "608 1100 8 Avenue SW",
"distance_km": 1.2320033311843872,
"estimate_sale_date_sold": "2025-03-25",
"image": "18805db183dbc05f_b11e7d30",
"interior_sq_m": 172.33370971679688,
"latitude": 51.04650115966797,
"list_price": 374900,
"longitude": -114.08673095703124
},
{
"address": "902B 500 Eau Claire Avenue SW",
"distance_km": 1.6730945110321045,
"estimate_sale_date_sold": "2023-03-22",
"image": "df9578810eb81033_561ba215",
"interior_sq_m": 173.63433837890625,
"latitude": 51.05313873291016,
"list_price": 463800,
"longitude": -114.07258605957033
},
{
"address": "602A 500 Eau Claire Avenue SW",
"distance_km": 1.6730945110321045,
"estimate_sale_date_sold": "2026-06-21",
"image": "afbf928502e6787e_5f270bde",
"interior_sq_m": 164.90151977539062,
"latitude": 51.05313873291016,
"list_price": 424900,
"longitude": -114.07258605957033
}
],
"comparable_properties_total": 28191,
"construction_year": 1979,
"country": "Canada",
"den": 0,
"estimate_list_price": {
"confidence_score": 95.01814270019533,
"model_metrics": {
"coefficient_of_variation": 39.8504753626973,
"error_10th_percentile": 4338.16259765625,
"error_25th_percentile": 11031.234375,
"error_50th_percentile": 25255.4375,
"error_75th_percentile": 53322.8125,
"error_90th_percentile": 106059.9453125,
"error_95th_percentile": 184402.015625,
"forecast_std_dev": 255608.171875,
"mae": 60686.69140625,
"mape": 8.463743209838867,
"mean_bias": -10692.3330078125,
"median_bias": 414.9375,
"median_mape": 4.9818596839904785,
"mse": 65449492480.0,
"over_prediction_rate": 50.320489737126394,
"pct_error_10th": 0.9080060720443726,
"pct_error_90th": 15.432555198669434,
"rmse": 255830.984375,
"testing_r_squared": 0.94,
"training_r_squared": 0.98,
"under_prediction_rate": 49.679510262873606,
"within_10_pct": 77.83939503060857,
"within_15_pct": 89.31220741807707,
"within_20_pct": 94.54807346056896,
"within_5_pct": 50.14043932301044
},
"value": 430864.90625
},
"estimate_rent_monthly": {
"confidence_score": 93.83267974853516,
"model_metrics": {
"coefficient_of_variation": 22.798548277028747,
"error_10th_percentile": 29.91469955444336,
"error_25th_percentile": 74.45068359375,
"error_50th_percentile": 169.37689208984375,
"error_75th_percentile": 335.43365478515625,
"error_90th_percentile": 655.9906005859375,
"error_95th_percentile": 1026.8118896484375,
"forecast_std_dev": 668.0843505859375,
"mae": 316.8042297363281,
"mape": 10.418495178222656,
"mean_bias": -44.97128677368164,
"median_bias": -3.4735107421875,
"median_mape": 6.167322635650635,
"mse": 448360.4375,
"over_prediction_rate": 49.36860714736709,
"pct_error_10th": 1.1183578968048096,
"pct_error_90th": 21.039480209350582,
"rmse": 669.5972290039062,
"testing_r_squared": 0.71,
"training_r_squared": 0.86,
"under_prediction_rate": 50.63139285263291,
"within_10_pct": 68.802879151408,
"within_15_pct": 82.28943048364692,
"within_20_pct": 89.08953150650335,
"within_5_pct": 42.044450056825355
},
"value": 3057.090576171875
},
"estimate_sale_price": {
"confidence_score": 94.2463607788086,
"model_metrics": {
"coefficient_of_variation": 44.60855523222251,
"error_10th_percentile": 5113.02490234375,
"error_25th_percentile": 13220.5859375,
"error_50th_percentile": 29188.890625,
"error_75th_percentile": 58933.328125,
"error_90th_percentile": 114315.671875,
"error_95th_percentile": 186286.953125,
"forecast_std_dev": 281802.53125,
"mae": 67590.8359375,
"mape": 9.812854766845703,
"mean_bias": -10934.208984375,
"median_bias": -818.546875,
"median_mape": 5.7536420822143555,
"mse": 79532048384.0,
"over_prediction_rate": 49.140341067934024,
"pct_error_10th": 1.0522005558013916,
"pct_error_90th": 18.072734832763672,
"rmse": 282014.28125,
"testing_r_squared": 0.91,
"training_r_squared": 0.95,
"under_prediction_rate": 50.859658932065976,
"within_10_pct": 72.40704500978474,
"within_15_pct": 85.81213307240705,
"within_20_pct": 91.81576740285156,
"within_5_pct": 45.07268660889013
},
"value": 300990.46875
},
"image": "bd9c6fb24c31c772_7e931788",
"interior_sq_m": 200.5,
"latitude": 51.03819274902344,
"longitude": -114.07510375976562,
"price_history": [
{
"date": "2025-04-05",
"estimate_list_price": 426578.84375,
"estimate_rent_monthly": 3088.655029296875,
"estimate_sale_price": 296463.9375
},
{
"date": "2025-05-05",
"estimate_list_price": 429732.28125,
"estimate_rent_monthly": 3118.920654296875,
"estimate_sale_price": 298826.46875
},
{
"date": "2025-06-04",
"estimate_list_price": 433460.5625,
"estimate_rent_monthly": 3134.9375,
"estimate_sale_price": 299344.75
},
{
"date": "2025-07-04",
"estimate_list_price": 433987.53125,
"estimate_rent_monthly": 3134.9375,
"estimate_sale_price": 297770.78125
},
{
"date": "2025-08-03",
"estimate_list_price": 435723.5,
"estimate_rent_monthly": 3017.817138671875,
"estimate_sale_price": 297770.78125
},
{
"date": "2025-09-02",
"estimate_list_price": 434658.53125,
"estimate_rent_monthly": 3072.704833984375,
"estimate_sale_price": 291259.59375
},
{
"date": "2025-10-02",
"estimate_list_price": 428997.6875,
"estimate_rent_monthly": 2975.49755859375,
"estimate_sale_price": 291259.59375
},
{
"date": "2025-11-01",
"estimate_list_price": 414148.53125,
"estimate_rent_monthly": 2944.9462890625,
"estimate_sale_price": 284786.46875
},
{
"date": "2025-12-01",
"estimate_list_price": 412962.1875,
"estimate_rent_monthly": 2942.477294921875,
"estimate_sale_price": 284990.78125
},
{
"date": "2025-12-31",
"estimate_list_price": 410467.34375,
"estimate_rent_monthly": 2942.477294921875,
"estimate_sale_price": 294147.03125
},
{
"date": "2026-01-30",
"estimate_list_price": 408482.03125,
"estimate_rent_monthly": 2930.892578125,
"estimate_sale_price": 293819.84375
},
{
"date": "2026-03-01",
"estimate_list_price": 423411.78125,
"estimate_rent_monthly": 2918.747802734375,
"estimate_sale_price": 293819.84375
},
{
"date": "2026-03-31",
"estimate_list_price": 428446.9375,
"estimate_rent_monthly": 2930.98046875,
"estimate_sale_price": 293674.1875
},
{
"date": "2026-04-30",
"estimate_list_price": 426860.4375,
"estimate_rent_monthly": 2884.659423828125,
"estimate_sale_price": 294393.4375
},
{
"date": "2026-05-30",
"estimate_list_price": 427634.625,
"estimate_rent_monthly": 2971.72021484375,
"estimate_sale_price": 293495.25
},
{
"date": "2026-06-29",
"estimate_list_price": 421978.3125,
"estimate_rent_monthly": 2924.78466796875,
"estimate_sale_price": 300990.46875
},
{
"date": "2026-07-29",
"estimate_list_price": 425843.9375,
"estimate_rent_monthly": 3057.090576171875,
"estimate_sale_price": 300990.46875
},
{
"date": "2026-08-28",
"estimate_list_price": 430852.15625,
"estimate_rent_monthly": 3057.090576171875,
"estimate_sale_price": 300990.46875
},
{
"date": "2026-09-27",
"estimate_list_price": 430864.90625,
"estimate_rent_monthly": 3057.090576171875,
"estimate_sale_price": 300990.46875
}
],
"property_id": "bd9c6fb24c31c772",
"property_type": "Apartment",
"property_warning_flags": [
{
"description": "Monthly fees run about 4% of the estimated value each year, above the typical range. High fees can weigh on resale.",
"warning": "High monthly fees"
},
{
"description": "This property appears to have been converted between residential and commercial use. Conversions can carry permit, zoning, and insurance complications worth confirming.",
"warning": "Use conversion"
}
],
"province": "Alberta",
"score_air_quality": 6,
"score_bicycle": 9,
"score_cell_coverage": 10,
"score_curb_appeal": 5,
"score_earthquake": 9,
"score_education": 9,
"score_entertainment": 10,
"score_family": 0,
"score_fire": 10,
"score_flood": 9,
"score_food_and_drink": 10,
"score_hurricane": 10,
"score_internet": 10,
"score_nature": 6,
"score_parking": 10,
"score_quiet": 3,
"score_retirement": 0,
"score_safety": 6,
"score_shopping": 9,
"score_smell": 6,
"score_tornado": 8,
"score_total": 7,
"score_total_percent": 0.7320000529289246,
"score_traffic": 0,
"score_transit": 10,
"score_walkability": 10,
"score_water_quality": 8,
"valuation_date": "2026-09-27"
},
"error": "",
"price_quote": false,
"time_ms": 250,
"url": "https://www.houski.ca/avm-report/bd9c6fb24c31c772_a49b86c7"
}
interface AvmResponse {
url: string;
data: AvmValuation;
error: string;
time_ms: number;
cost_cents: number;
price_quote: boolean;
cache_hit: boolean;
}
interface AvmValuation {
property_warning_flags: AvmWarningFlag[];
interior_sq_m: number;
property_type: string;
bedroom: u16;
den: u16;
bathroom_full: u16;
bathroom_half: u16;
construction_year: u16;
property_id: string;
image: string;
address?: string | null;
city?: string | null;
country?: string | null;
province?: string | null;
latitude: number;
longitude: number;
estimate_list_price: AvmSingleValuation;
estimate_sale_price: AvmSingleValuation;
estimate_rent_monthly: AvmSingleValuation;
price_history: Prediction[];
valuation_date: string;
score_air_quality?: u8 | null;
score_bicycle?: u8 | null;
score_cell_coverage?: u8 | null;
score_curb_appeal?: u8 | null;
score_earthquake?: u8 | null;
score_education?: u8 | null;
score_entertainment?: u8 | null;
score_family?: u8 | null;
score_fire?: u8 | null;
score_flood?: u8 | null;
score_food_and_drink?: u8 | null;
score_hurricane?: u8 | null;
score_internet?: u8 | null;
score_nature?: u8 | null;
score_parking?: u8 | null;
score_quiet?: u8 | null;
score_retirement?: u8 | null;
score_safety?: u8 | null;
score_shopping?: u8 | null;
score_smell?: u8 | null;
score_tornado?: u8 | null;
score_total?: u8 | null;
score_total_percent?: number | null;
score_traffic?: u8 | null;
score_transit?: u8 | null;
score_walkability?: u8 | null;
score_water_quality?: u8 | null;
comparable_properties_total: number;
comparable_properties: AvmComparableProperty[];
}
interface AvmSingleValuation {
value: number;
confidence_score: number;
model_metrics: AvmModelMetrics;
}
interface AvmModelMetrics {
training_r_squared: number;
testing_r_squared: number;
mae: number;
rmse: number;
mape: number;
median_mape: number;
mse: number;
within_5_pct: number;
within_10_pct: number;
within_15_pct: number;
within_20_pct: number;
mean_bias: number;
median_bias: number;
over_prediction_rate: number;
under_prediction_rate: number;
error_10th_percentile: number;
error_25th_percentile: number;
error_50th_percentile: number;
error_75th_percentile: number;
error_90th_percentile: number;
error_95th_percentile: number;
pct_error_10th: number;
pct_error_90th: number;
forecast_std_dev: number;
coefficient_of_variation: number;
}
interface AvmComparableProperty {
address: string;
image: string;
latitude: number;
longitude: number;
distance_km: number;
interior_sq_m: number;
list_price: number;
estimate_sale_date_sold: string;
}
interface AvmWarningFlag {
warning: string;
description: string;
}
interface Prediction {
date: string;
estimate_list_price?: number | null;
estimate_sale_price?: number | null;
estimate_rent_monthly?: number | null;
}