Residential properties whose listing history shows investor behaviour. One row per property, 25 columns, flags read from what the property did on the market since 2014. This is the table behind the Canada Investor Property Signals & Rental Exits listing on the Snowflake Marketplace.
Each row is one residential property that carries at least one investor flag: a home bought and relisted within months, listed for rent right after a purchase, taken from rental to sale, moved from a failed sale to rent, listed for sale and rent at once, or run through a long, heavily discounted campaign. The row carries the flags, the listing counts and days on market behind them, the sale-side price cuts, the asking yield where the property has both an asking price and an asking rent, and the property type, bedrooms, bathrooms and floor area as last observed.
The table is a view over the Canada Property Master File, so every column here has the same meaning there and the two join on the property identifier. Column names are as they appear in the Snowflake listing.
| Field | Type | Description |
|---|---|---|
PROPERTY_ID | Text | Persistent property identifier. The same identifier the property carries in the Canada Property Master File, so the two tables join on it directly. |
ADDRESS | Text | Standardized street address, upper case, unit first where there is one (for example 1706-1178 HEFFLEY CRES). |
CITY | Text | City or municipality, upper case. |
PROVINCE | Text | Province or territory, two-letter code. |
POSTAL_CODE | Text | Canadian postal code. |
FSA | Text | Forward sortation area: the first three characters of the postal code. |
| Field | Type | Description |
|---|---|---|
INVESTOR_FLAGS | Text | The investor flags the property carries, separated by semicolons. Every row has at least one. The seven values are defined below. |
EVER_DUAL_LISTED | Text | Values t or f. Whether the property has ever been listed for sale and for rent at the same time. |
CURRENTLY_ACTIVE | Text | Values t or f. Whether the property was on the market, for sale or for rent, at the most recent weekly refresh. |
| Field | Type | Description |
|---|---|---|
SALE_LISTINGS | Text | Number of times the property has been listed for sale since March 2014. |
RENT_LISTINGS | Text | Number of times the property has been listed for rent since March 2014. |
LISTING_CAMPAIGNS | Text | Number of distinct listing campaigns across both markets. A relist after a short gap stays inside the same campaign; a return after a long gap starts a new one. |
LIFETIME_DOM | Text | Total days on market across every listing of the property. |
DARK_DAYS | Text | Total days the property spent off the market between campaigns. |
FIRST_SEEN | Text | Date the property was first observed on the market, in any listing. |
LAST_SEEN | Text | Date the property was last observed on the market. |
| Field | Type | Description |
|---|---|---|
SALE_PRICE_CUTS | Text | Number of asking-price reductions across the property's sale listings. |
SALE_CUT_PCT_OF_PEAK | Text | The deepest reduction as a percentage of the peak asking price. |
SALE_NET_CUT_DOLLARS | Text | Dollars cut from the peak asking price to the latest asking price. |
| Field | Type | Description |
|---|---|---|
ASKING_GROSS_YIELD_PCT | Text | Latest asking rent, annualized, as a percentage of the latest asking price. Filled only where the property has both an asking price and an asking rent. |
ASKING_PRICE_TO_RENT | Text | Latest asking price divided by the latest annual asking rent. Filled only where both exist. The reciprocal of the gross yield. |
| Field | Type | Description |
|---|---|---|
PTYPE_LATEST | Text | Property type as published on the most recent listing (Single Family, Condo, Multi-family, Vacant Land, Parking, Agriculture, Recreational). |
BEDS_LATEST | Text | Bedrooms as published on the most recent listing. Kept as published, so values like 4 + 1 appear. |
BATHS_LATEST | Text | Bathrooms as published on the most recent listing. |
SQFT_LATEST | Text | Floor area as published on the most recent listing, in the unit the listing used. |
A property can carry more than one. The flags are read from the property's own listing history, not from ownership records, so a home carries a flag because of what it did on the market.
RAPID_RELISTRAPID_RELIST_MARKED_UPLIKELY_INVESTOR_RENTALRENTAL_EXITFAILED_SALE_TO_RENTDUAL_LISTEDDISTRESSED_CAMPAIGNTRY_TO_NUMBER() and dates with TRY_TO_DATE().INVESTOR_FLAGS LIKE '%RENTAL_EXIT%'. The column is a list, not a single value.PROPERTY_ID, or to any address file on ADDRESS and POSTAL_CODE, both upper case.The file this table is drawn from: one record per residential property with its full listing history.
Product page →How investor-owned homes show up in listing data, and what the flags catch.
Read →Long campaigns, repeated cuts and the difference between a motivated seller and a stale listing.
Read →