Comparables

Find the best rent comps for a property given its details among close by properties. Score different facets of all candidates and return the best ones. In order to get the best results, we leverage market demographics, detected quality, amenities, similarity of unit mixes, and more.

  • Data completion: feel free to complete the record with extra data only you have access to or if you want to override the data we have. For example, what would be the rent of the property if it was in a better condition? You can increase the quality of the property and see how the comps change.
  • Extra Filters: you can set extra filters. For example, you can set a maximum distance between the subject and the rent comps, a minimum number of units, a maximum number of units, a minimum year built, and a maximum year built.
  • Exclusions: you can exclude properties from the results. For example, you can exclude properties that are not good comps or properties that have already been selected. We will make sure we don’t return them in the results.
  • Already Selected: you can also pass the ids of the properties that you want to force into the results.

How to craft the payload:

The endpoint accepts two types of payloads:

Option 1: Detailed Property (Recommended)

Use the result from /property/{id} endpoint as the subject field:

1{
2 subject: PropertyDetailsResponse, // from /property/{id}
3 excluded_ids?: string[], // optional: exclude properties
4 selected_ids?: string[] // optional: force include properties
5}

Option 2: Simple Property

Use a simplified property object with basic information:

1{
2 simple_subject: {
3 lat: number, // required: latitude
4 lon: number, // required: longitude
5 is_single_family: boolean, // required: property type
6 is_apartment: boolean, // required: property type
7 is_condo: boolean, // required: property type
8 number_units?: number, // optional: total units
9 year_built?: number, // optional: construction year
10 number_stories?: number, // optional: building height
11 avg_quality_prediction?: number, // optional: quality score (0-1)
12 building_amenities?: string[], // optional: building features
13 unit_amenities?: string[], // optional: unit features
14 unit_mix?: Array<{ // optional: unit distribution
15 bed: number, bath: number, count: number, avg_sqft: number
16 }>
17 },
18 excluded_ids?: string[], // optional: exclude properties
19 selected_ids?: string[] // optional: force include properties
20}

Recommendation: Use Option 1 (detailed property) for best results. It provides comprehensive property information including market statistics, quality scores, unit details, and automatically detected values for missing fields.

When to use simple property: Use Option 2 when you only have basic property information from your own systems and want to find similar properties based on fundamental characteristics like location, unit count, and amenities.

Computing Similarities:

If you are interested in simply getting similarities between properties, you can use the comparables endpoint. Pass the ids of the comps you want similarities for into the selected_ids field. And set topN to the same number of properties you are passing. We will return the similarities between the subject and the selected properties.

Headers

x-api-keystringRequired

Query parameters

topNdoubleOptional
The number of rent comps to return.
tierenumOptional
The tier of the property. Either 'valueAdd' or 'current'. When 'valueAdd', the results will assume a better condition of the property.
Allowed values:
renovationsdoubleOptional

The renovations to apply to the property. A value between 0.0 and 1.0 to add to the property quality. (e.g. 0.1 will transform a 0.4 quality property into a 0.5 quality property).

maxDistancedoubleOptional
The maximum distance in miles between the subject and the rent comps.
minDistancedoubleOptional
The minimum distance in miles between the subject and the rent comps.
minNumberUnitsdoubleOptional
The minimum number of units of the rent comps. Does not filter properties with no units.
maxNumberUnitsdoubleOptional
The maximum number of units of the rent comps. Does not filter properties with no units.
allowNullNumberUnitsbooleanOptional
When a number of units range is specified, whether to allow properties with no units to be included in the results. False by default.
minYearBuiltdoubleOptional
The minimum year built of the rent comps. Does not filter properties with no year built.
maxYearBuiltdoubleOptional
The maximum year built of the rent comps. Does not filter properties with no year built.
allowNullYearBuiltbooleanOptional
When a year built range is specified, whether to allow properties with no year built to be included in the results. False by default.
minNumberStoriesdoubleOptional
The minimum number of stories of the rent comps. Does not filter properties with no stories.
maxNumberStoriesdoubleOptional
The maximum number of stories of the rent comps. Does not filter properties with no stories.
allowNullNumberStoriesbooleanOptional
When a number of stories range is specified, whether to allow properties with no stories to be included in the results. False by default.
useEmbeddingbooleanOptional
isAffordablebooleanOptional
isSeniorbooleanOptional
isStudentbooleanOptional

Request

This endpoint expects an object.
DetailedCompsPayloadobjectRequired
OR
SimpleCompsPayloadobjectRequired

Response

The list of rent comps with high-level details.

comparableslist of objects
competition_profilelist of objects or null