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 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 |
|---|---|---|
| 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 = $5.00) |
| price_quote | Boolean | Indicates if this is a price quote request (no charge) |
| Name | Type | Description |
|---|---|---|
| property_warning_flags | Array<AvmWarningFlag> | Array of warning flags indicating potential issues with the property or valuation |
| 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 | Property image URL |
| address | String | Property address |
| city | String | City name |
| country | String | Country abbreviation |
| province | String | Province/state abbreviation |
| 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 |
| valuation_date | String | Date the valuation was performed (YYYY-MM-DD) |
| comparable_properties_total | Integer | Total number of comparable properties in the same city and type |
| comparable_properties | Array<AvmComparableProperty> | Up to 10 nearby comparable properties within 5km with similar size (±20%), sorted by 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 (0-1, lower is better) |
| median_mape | Float | Median Absolute Percentage Error (0-1, 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 (0-1) |
| within_10_pct | Float | Percentage of predictions within 10% of actual value (0-1) |
| within_15_pct | Float | Percentage of predictions within 15% of actual value (0-1) |
| within_20_pct | Float | Percentage of predictions within 20% of actual value (0-1) |
| 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 (0-1) |
| under_prediction_rate | Float | Percentage of predictions that are under-estimates (0-1) |
| 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 percentage errors (0-1) |
| pct_error_90th | Float | 90th percentile of percentage errors (0-1) |
| Uncertainty metrics | ||
| forecast_std_dev | Float | Standard deviation of prediction errors in dollars |
| coefficient_of_variation | Float | Coefficient of variation (std dev / mean, lower is better) |
| Name | Type | Description |
|---|---|---|
| address | String | Property address |
| image | String | Property image URL |
| latitude | Float | Latitude coordinate |
| longitude | Float | Longitude coordinate |
| distance_km | Float | Distance from target property in kilometers |
| list_price | Integer | Original listing price |
| estimate_sale_date_sold | String | Estimated sale date in YYYY-MM-DD - Houski's model-based date for when the property likely sold. Houski does not have access to recorded sale prices or closing dates. |
| Name | Type | Description |
|---|---|---|
| warning | String | Short warning code or identifier |
| description | String | Detailed description of the warning or issue |
Select the programming language you want to display the code examples in.
curl -X GET "https://api.houski.ca/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('https://api.houski.ca/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.15573714673519137,
"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": "1105 1209 6 Street SW",
"distance_km": 0.39864420890808105,
"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": "109 545 18 Avenue SW",
"distance_km": 0.19652090966701508,
"estimate_sale_date_sold": "2025-09-03",
"image": "703794262c3f0a6f_ae0e2846",
"interior_sq_m": 94.10999298095705,
"latitude": 51.03668594360352,
"list_price": 319900,
"longitude": -114.0736083984375
},
{
"address": "401 1209 6 Street SW",
"distance_km": 0.39864420890808105,
"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": "500 610 17 Avenue SW",
"distance_km": 0.0,
"estimate_sale_date_sold": "2023-05-17",
"image": "fb81bd27e5d3b319_860c3dd6",
"interior_sq_m": 93.36677551269533,
"latitude": 51.03819274902344,
"list_price": 324900,
"longitude": -114.07510375976562
},
{
"address": "701 1209 6 Street SW",
"distance_km": 0.39864420890808105,
"estimate_sale_date_sold": "2024-04-04",
"image": "27170c00d68d56c5_a08329a3",
"interior_sq_m": 94.48160552978516,
"latitude": 51.04155349731445,
"list_price": 314900,
"longitude": -114.07714080810548
},
{
"address": "504 616 15 Avenue SW",
"distance_km": 0.11205749213695526,
"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": "203 330 15 Avenue SW",
"distance_km": 0.35846400260925293,
"estimate_sale_date_sold": "2024-05-13",
"image": "9bfb40e46e0da97_57c6d01e",
"interior_sq_m": 90.20809936523438,
"latitude": 51.039058685302734,
"list_price": 318800,
"longitude": -114.07009887695312
},
{
"address": "305 1209 6 Street SW",
"distance_km": 0.39864420890808105,
"estimate_sale_date_sold": "2024-08-04",
"image": "1119eb5e5c0e6dd6_9dfcbaf5",
"interior_sq_m": 94.2957992553711,
"latitude": 51.04155349731445,
"list_price": 290000,
"longitude": -114.07714080810548
}
],
"comparable_properties_total": 26446,
"construction_year": 1979,
"country": "Canada",
"den": 0,
"estimate_list_price": {
"confidence_score": 95.37734985351562,
"model_metrics": {
"coefficient_of_variation": 21.297779888460052,
"error_10th_percentile": 3827.418701171875,
"error_25th_percentile": 9674.828125,
"error_50th_percentile": 23070.7421875,
"error_75th_percentile": 47898.9296875,
"error_90th_percentile": 92634.5625,
"error_95th_percentile": 148044.328125,
"forecast_std_dev": 128036.875,
"mae": 47591.03125,
"mape": 6.9191975593566895,
"mean_bias": -5065.5068359375,
"median_bias": 430.265625,
"median_mape": 4.622647285461426,
"mse": 16419014656.0,
"over_prediction_rate": 50.56352952509392,
"pct_error_10th": 0.825827956199646,
"pct_error_90th": 14.368406295776367,
"rmse": 128136.703125,
"testing_r_squared": 0.95,
"training_r_squared": 0.98,
"under_prediction_rate": 49.43647047490608,
"within_10_pct": 80.1416048550236,
"within_15_pct": 90.8823812734804,
"within_20_pct": 95.21722377420288,
"within_5_pct": 53.00067430883345
},
"value": 304696.46875
},
"estimate_rent_monthly": {
"confidence_score": 84.40579986572266,
"model_metrics": {
"coefficient_of_variation": 74.19626193400119,
"error_10th_percentile": 11197.140625,
"error_25th_percentile": 29858.390625,
"error_50th_percentile": 73107.78125,
"error_75th_percentile": 163402.125,
"error_90th_percentile": 341056.21875,
"error_95th_percentile": 550266.6875,
"forecast_std_dev": 451020.15625,
"mae": 168982.734375,
"mape": 33.335357666015625,
"mean_bias": -57108.90234375,
"median_bias": -1695.578125,
"median_mape": 15.594200134277344,
"mse": 206676312064.0,
"over_prediction_rate": 49.18625,
"pct_error_10th": 2.5083909034729004,
"pct_error_90th": 66.41152954101562,
"rmse": 454616.65625,
"testing_r_squared": 0.72,
"training_r_squared": 0.82,
"under_prediction_rate": 50.81375,
"within_10_pct": 36.0375,
"within_15_pct": 48.791250000000005,
"within_20_pct": 58.3375,
"within_5_pct": 19.635
},
"value": 2113.846923828125
},
"estimate_sale_price": {
"confidence_score": 95.3768310546875,
"model_metrics": {
"coefficient_of_variation": 21.802883473823258,
"error_10th_percentile": 3706.49365234375,
"error_25th_percentile": 9493.46875,
"error_50th_percentile": 22532.15625,
"error_75th_percentile": 47268.0703125,
"error_90th_percentile": 93783.46875,
"error_95th_percentile": 150844.203125,
"forecast_std_dev": 127978.265625,
"mae": 47541.25,
"mape": 7.054271221160889,
"mean_bias": -4664.0380859375,
"median_bias": 475.828125,
"median_mape": 4.623165130615234,
"mse": 16400123904.0,
"over_prediction_rate": 50.63577690010597,
"pct_error_10th": 0.8310901522636414,
"pct_error_90th": 14.612176895141602,
"rmse": 128062.96875,
"testing_r_squared": 0.95,
"training_r_squared": 0.99,
"under_prediction_rate": 49.36422309989404,
"within_10_pct": 79.77555148829593,
"within_15_pct": 90.50187843175031,
"within_20_pct": 94.70185916578365,
"within_5_pct": 53.04402273384067
},
"value": 293364.59375
},
"image": "bd9c6fb24c31c772_7e931788",
"interior_sq_m": 92.43848419189452,
"latitude": 51.03819274902344,
"longitude": -114.07510375976562,
"price_history": [
{
"date": "2025-02-18",
"estimate_list_price": 328939.625,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 303350.5625
},
{
"date": "2025-03-20",
"estimate_list_price": 329062.625,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 304171.25
},
{
"date": "2025-04-19",
"estimate_list_price": 329062.625,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 304964.21875
},
{
"date": "2025-05-19",
"estimate_list_price": 335027.4375,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 311037.21875
},
{
"date": "2025-06-18",
"estimate_list_price": 333825.6875,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 314355.09375
},
{
"date": "2025-07-18",
"estimate_list_price": 332129.96875,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 315810.03125
},
{
"date": "2025-08-17",
"estimate_list_price": 331247.09375,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 313273.1875
},
{
"date": "2025-09-16",
"estimate_list_price": 322242.5,
"estimate_rent_monthly": 2109.8994140625,
"estimate_sale_price": 307987.21875
},
{
"date": "2025-10-16",
"estimate_list_price": 310982.65625,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 304819.40625
},
{
"date": "2025-11-15",
"estimate_list_price": 310966.9375,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 309683.09375
},
{
"date": "2025-12-15",
"estimate_list_price": 310966.9375,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 308561.96875
},
{
"date": "2026-01-14",
"estimate_list_price": 303210.59375,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 304967.40625
},
{
"date": "2026-02-13",
"estimate_list_price": 302817.875,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 298701.09375
},
{
"date": "2026-03-15",
"estimate_list_price": 303162.3125,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 298037.53125
},
{
"date": "2026-04-14",
"estimate_list_price": 302872.15625,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 297308.53125
},
{
"date": "2026-05-14",
"estimate_list_price": 302872.15625,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 292016.375
},
{
"date": "2026-06-13",
"estimate_list_price": 302610.59375,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 292016.375
},
{
"date": "2026-07-13",
"estimate_list_price": 304696.46875,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 293364.59375
},
{
"date": "2026-08-12",
"estimate_list_price": 304696.46875,
"estimate_rent_monthly": 2113.846923828125,
"estimate_sale_price": 293364.59375
}
],
"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": 4,
"score_earthquake": 9,
"score_education": 9,
"score_entertainment": 10,
"score_family": 0,
"score_fire": 9,
"score_flood": 9,
"score_food_and_drink": 10,
"score_hurricane": 10,
"score_internet": 10,
"score_nature": 6,
"score_parking": 8,
"score_quiet": 2,
"score_retirement": 0,
"score_safety": 6,
"score_shopping": 9,
"score_smell": 4,
"score_tornado": 8,
"score_total": 7,
"score_total_percent": 0.6960000395774841,
"score_traffic": 0,
"score_transit": 9,
"score_walkability": 10,
"score_water_quality": 7,
"valuation_date": "2026-08-12"
},
"error": "",
"price_quote": false,
"time_ms": 656,
"url": "https://www.houski.ca/avm-report/bd9c6fb24c31c772_a49b86c7"
}
curl -X GET "https://api.houski.ca/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('https://api.houski.ca/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": "1702 1100 8 Avenue SW",
"distance_km": 1.2223594188690186,
"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.2223594188690186,
"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": "2402 1100 8 Avenue SW",
"distance_km": 1.2223594188690186,
"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": "1002A 500 Eau Claire Avenue SW",
"distance_km": 1.6680749654769895,
"estimate_sale_date_sold": "2025-05-24",
"image": "ac5d6ff8f792e640_62987ac1",
"interior_sq_m": 163.13638305664062,
"latitude": 51.05313873291016,
"list_price": 400000,
"longitude": -114.07258605957033
},
{
"address": "1440 540 14 Avenue SW",
"distance_km": 0.22966907918453217,
"estimate_sale_date_sold": "2026-01-07",
"image": "a9e91311d17717f_a06d58be",
"interior_sq_m": 195.46636962890625,
"latitude": 51.040096282958984,
"list_price": 450000,
"longitude": -114.07379913330078
},
{
"address": "602A 500 Eau Claire Avenue SW",
"distance_km": 1.6680749654769895,
"estimate_sale_date_sold": "2026-06-21",
"image": "afbf928502e6787e_5f270bde",
"interior_sq_m": 164.90151977539062,
"latitude": 51.05313873291016,
"list_price": 424900,
"longitude": -114.07258605957033
},
{
"address": "2501 1100 8 Avenue SW",
"distance_km": 1.2223594188690186,
"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": "202A 500 Eau Claire Avenue SW",
"distance_km": 1.6680749654769895,
"estimate_sale_date_sold": "2025-05-08",
"image": "7e6846f5e4e6bf6d_371c6223",
"interior_sq_m": 163.4150848388672,
"latitude": 51.05313873291016,
"list_price": 425000,
"longitude": -114.07258605957033
},
{
"address": "2201 1100 8 Avenue SW",
"distance_km": 1.2223594188690186,
"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": "420 649 Marsh Road NE",
"distance_km": 2.399594306945801,
"estimate_sale_date_sold": "2025-05-21",
"image": "b11e7d45073a67e4_742ee301",
"interior_sq_m": 166.94537353515625,
"latitude": 51.05254364013672,
"list_price": 429900,
"longitude": -114.0490951538086
}
],
"comparable_properties_total": 26446,
"construction_year": 1979,
"country": "Canada",
"den": 0,
"estimate_list_price": {
"confidence_score": 95.37734985351562,
"model_metrics": {
"coefficient_of_variation": 21.297779888460052,
"error_10th_percentile": 3827.418701171875,
"error_25th_percentile": 9674.828125,
"error_50th_percentile": 23070.7421875,
"error_75th_percentile": 47898.9296875,
"error_90th_percentile": 92634.5625,
"error_95th_percentile": 148044.328125,
"forecast_std_dev": 128036.875,
"mae": 47591.03125,
"mape": 6.9191975593566895,
"mean_bias": -5065.5068359375,
"median_bias": 430.265625,
"median_mape": 4.622647285461426,
"mse": 16419014656.0,
"over_prediction_rate": 50.56352952509392,
"pct_error_10th": 0.825827956199646,
"pct_error_90th": 14.368406295776367,
"rmse": 128136.703125,
"testing_r_squared": 0.95,
"training_r_squared": 0.98,
"under_prediction_rate": 49.43647047490608,
"within_10_pct": 80.1416048550236,
"within_15_pct": 90.8823812734804,
"within_20_pct": 95.21722377420288,
"within_5_pct": 53.00067430883345
},
"value": 319682.96875
},
"estimate_rent_monthly": {
"confidence_score": 84.40579986572266,
"model_metrics": {
"coefficient_of_variation": 74.19626193400119,
"error_10th_percentile": 11197.140625,
"error_25th_percentile": 29858.390625,
"error_50th_percentile": 73107.78125,
"error_75th_percentile": 163402.125,
"error_90th_percentile": 341056.21875,
"error_95th_percentile": 550266.6875,
"forecast_std_dev": 451020.15625,
"mae": 168982.734375,
"mape": 33.335357666015625,
"mean_bias": -57108.90234375,
"median_bias": -1695.578125,
"median_mape": 15.594200134277344,
"mse": 206676312064.0,
"over_prediction_rate": 49.18625,
"pct_error_10th": 2.5083909034729004,
"pct_error_90th": 66.41152954101562,
"rmse": 454616.65625,
"testing_r_squared": 0.72,
"training_r_squared": 0.82,
"under_prediction_rate": 50.81375,
"within_10_pct": 36.0375,
"within_15_pct": 48.791250000000005,
"within_20_pct": 58.3375,
"within_5_pct": 19.635
},
"value": 2548.763916015625
},
"estimate_sale_price": {
"confidence_score": 95.3768310546875,
"model_metrics": {
"coefficient_of_variation": 21.802883473823258,
"error_10th_percentile": 3706.49365234375,
"error_25th_percentile": 9493.46875,
"error_50th_percentile": 22532.15625,
"error_75th_percentile": 47268.0703125,
"error_90th_percentile": 93783.46875,
"error_95th_percentile": 150844.203125,
"forecast_std_dev": 127978.265625,
"mae": 47541.25,
"mape": 7.054271221160889,
"mean_bias": -4664.0380859375,
"median_bias": 475.828125,
"median_mape": 4.623165130615234,
"mse": 16400123904.0,
"over_prediction_rate": 50.63577690010597,
"pct_error_10th": 0.8310901522636414,
"pct_error_90th": 14.612176895141602,
"rmse": 128062.96875,
"testing_r_squared": 0.95,
"training_r_squared": 0.99,
"under_prediction_rate": 49.36422309989404,
"within_10_pct": 79.77555148829593,
"within_15_pct": 90.50187843175031,
"within_20_pct": 94.70185916578365,
"within_5_pct": 53.04402273384067
},
"value": 323240.375
},
"image": "bd9c6fb24c31c772_7e931788",
"interior_sq_m": 200.5,
"latitude": 51.03819274902344,
"longitude": -114.07510375976562,
"price_history": [
{
"date": "2025-02-19",
"estimate_list_price": 322128.84375,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 280230.125
},
{
"date": "2025-03-21",
"estimate_list_price": 322249.28125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 280988.28125
},
{
"date": "2025-04-20",
"estimate_list_price": 322249.28125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 280988.28125
},
{
"date": "2025-05-20",
"estimate_list_price": 330380.46875,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 289360.0625
},
{
"date": "2025-06-19",
"estimate_list_price": 330567.34375,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 289360.0625
},
{
"date": "2025-07-19",
"estimate_list_price": 329408.9375,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 291161.84375
},
{
"date": "2025-08-18",
"estimate_list_price": 328205.125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 289474.875
},
{
"date": "2025-09-17",
"estimate_list_price": 327769.40625,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 291683.21875
},
{
"date": "2025-10-17",
"estimate_list_price": 319315.8125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 287716.71875
},
{
"date": "2025-11-16",
"estimate_list_price": 319221.125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 298913.6875
},
{
"date": "2025-12-16",
"estimate_list_price": 319221.125,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 295986.53125
},
{
"date": "2026-01-15",
"estimate_list_price": 318932.03125,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 290900.65625
},
{
"date": "2026-02-14",
"estimate_list_price": 318932.03125,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 284923.40625
},
{
"date": "2026-03-16",
"estimate_list_price": 316447.96875,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 322584.4375
},
{
"date": "2026-04-15",
"estimate_list_price": 316447.96875,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 322584.4375
},
{
"date": "2026-05-15",
"estimate_list_price": 316447.96875,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 321970.03125
},
{
"date": "2026-06-14",
"estimate_list_price": 316416.0,
"estimate_rent_monthly": 2554.9892578125,
"estimate_sale_price": 321970.03125
},
{
"date": "2026-07-14",
"estimate_list_price": 319682.96875,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 323240.375
},
{
"date": "2026-08-13",
"estimate_list_price": 319682.96875,
"estimate_rent_monthly": 2548.763916015625,
"estimate_sale_price": 323240.375
}
],
"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": 4,
"score_earthquake": 9,
"score_education": 9,
"score_entertainment": 10,
"score_family": 0,
"score_fire": 9,
"score_flood": 9,
"score_food_and_drink": 10,
"score_hurricane": 10,
"score_internet": 10,
"score_nature": 6,
"score_parking": 8,
"score_quiet": 2,
"score_retirement": 0,
"score_safety": 6,
"score_shopping": 9,
"score_smell": 4,
"score_tornado": 8,
"score_total": 7,
"score_total_percent": 0.6960000395774841,
"score_traffic": 0,
"score_transit": 9,
"score_walkability": 10,
"score_water_quality": 7,
"valuation_date": "2026-08-13"
},
"error": "",
"price_quote": false,
"time_ms": 717,
"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;
}